記錄在docker中部署pure ftp

2022-09-01 07:39:06 字數 3195 閱讀 6788

1、部署環境

普通物理機一台(6g記憶體,500g硬碟),windows server 2016作業系統。

安裝vmware workstation  pro14,新建centos 7虛擬機器。

2、在centos 7虛擬機器中安裝docker、建立容器、在容器中安裝pure-ftp

2.1、禁用selinux

#vi /etc/selinux/config

selinux有以下三種設定,設定為第一種

selinux=disabled

selinux=enforcing

selinux=permissive

2.2、安裝docker 

#yum

install

docker

#systemctl start docker.service

#systemctl enable docker.service

#docker images

檢視本機映象

#docker pull centos

#docker images

檢視本機映象

2.4、建立容器

#docker run -v /home/ftpdata:/containerftpdata -p 21:21 -p 48000-50000:48000-50000 -itd --privileged=true --name centos_ftp centos /usr/sbin/init

建立容器

#docker run

-v /home/ftpdata:/containerftpdata --net=host -itd --privileged=true --name centos_ftp_host centos /usr/sbin/

init

指定host網路模式建立容器,無需埠對映,使用主機的網路堆疊,這種模式可以修改優化容器核心引數

#docker exec -it centos_ftp /bin/bash

進入容器

修改容器時間

# mv

localtime localtime_bak

# cp /usr/share/zoneinfo/asia/shanghai /etc/localtime

2.5、在容器中安裝pure-ftp

第一步:安裝pure-ftp

預設的

yum 源沒有提供 pure-ftpd,需要先安裝 epel 擴充套件源:

# yum

install epel-release

然後使用

yum 命令安裝pure-ftpd:

# yum

install pure-ftpd

第二步:修改配置檔案

# vi /etc/pure-ftpd/pure-ftpd.conf

去掉#注釋,指定路徑,puredb使用者資料庫檔案

puredb /etc/pure-ftpd/pureftpd.pdb

開啟日誌 /var/log/pureftpd.log

verboselog yes

拒絕匿名使用者登入

noanonymous yes

使用被動模式,並限制埠範圍

passiveportrange

48000

50000

刪掉注釋,並將192.

168.0

.1修改為當前伺服器的公網ip

forcepassiveip 替換為當前伺服器的公網ip

第三步:建立賬戶,配置許可權

新增ftp使用者組

# groupadd ftpgroup

#useradd -g ftpgroup -s /sbin/nologin -m ftpuser

建立目錄並配置目錄許可權

# mkdir /containerftpdata/替換為建立的目錄 -p

# chown ftpuser:ftpgroup /containerftpdata/替換為建立的目錄 -r

建立虛擬賬戶

# pure-pw useradd 替換為虛擬賬戶 -u ftpuser -d /containerftpdata/替換為建立的目錄

隨後會提示輸入這個虛擬使用者名稱的登入密碼

#pure-pw mkdb

第四步:啟動pure-ftpd

# systemctl enable pure-ftpd.service

# systemctl start pure-ftpd.service

2.6、安裝net-tools

#yum

install net-tools

#netstat -lntp

檢視 21

埠是否開啟

#ps aux | grep

ftp檢視

ftp 程序

3、centos 7虛擬機器防火牆設定和修改優化容器核心引數

#firewall-cmd --permanent --add-port=21/tcp 

#firewall-cmd --permanent --add-port=48000-50000/tcp

#firewall-cmd --reload

#firewall-cmd --list-all

#yum

install net-tools

#netstat -lntp

如果指定host網路模式建立的容器,可在centos 7虛擬機器中調優核心引數,容器的核心引數也隨之生效

#vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_time = 30

#每30s傳送一次keepalive資料報

net.ipv4.tcp_keepalive_intvl = 10

#確定keepalive探針在第一次保持活動探測後每10s傳送一次

net.ipv4.tcp_keepalive_probes = 6

#超時前的探測次數

net.ipv4.tcp_fin_timeout = 300

#系統預設的超時時間

#sysctl -p

#reboot

4、路由器埠對映

21埠和48000-50000埠  

Docker中部署Golang專案

參考 1.安裝docker 參考 2.預設你已經有乙個可以正常執行的golang專案了 比如叫project 啟動方式 go run main.go 參考 3.cd project touch dockerfile 4.dockerfile寫入 from golang 1.13 maintainer...

在docker中部署gitlab

docker pull gitlab gitlab ce 12.5.4 ce.0 2.在docker建立容器,讓gitlab跑起來 docker run d publish 8443 443 publish 10080 80 publish 1022 22 name gitlab restart a...

docker中部署django專案

docker pull ubuntu 15.10docker run itd name vth django v etc apt mnt vths v1.1 bin bash v的意思是把本地的目錄掛載到docker上。冒號之前是宿主機的目錄,冒號之後是docker的目錄。進入容器之後,把 mnt ...