之前直接在 centos 上面搭建 vsftpd,特別費勁,那麼多配置的地方,以及繁瑣的操作。就想着在 docker 上面去試試,畢竟有這麼簡單的方式去搭建,幹不用。
搭建過程
第一步:準備工作
創建一個文件夾,作爲我們上傳文件的目錄地址;創建一個用戶(不能登錄系統),作爲訪問文件服務器使用。
// 創建 ftp文件目錄
cd /home
mkdir ftp
// 創建一個組,用於存放ftp 用戶
groupadd ftpuser
// 創建ftp用戶,並加入ftpgroups組
useradd -d /home/ftp -g ftpuser ftptest
// 設置密碼(123456)
passwd ftptest
// 不允許登錄
usermod -s /sbin/nologin ftptest
第二步:拉取鏡像
// 首先搜索鏡像包
docker search vsftpd
// 拉取鏡像
docker pull fauria/vsftpd
第三步:啓動容器
PASV_ADDRESS 這個參數是需要設置成爲自己的機器上面的
docker run -d -v /home/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=ftptest -e FTP_PASS=123456 \
-e PASV_ADDRESS=192.168.62.129 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
相關參數說明:
- /home/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目錄(冒號前面是宿主機的目錄)
- -p:映射 docker 端口(冒號前面是宿主機的端口)
- -e FTP_USER=test -e FTP_PASS=test :設置默認的用戶名密碼(都爲 test)
- PASV_ADDRESS:宿主機 ip,當需要使用被動模式時必須設置。
- PASV_MIN_PORT~ PASV_MAX_PORT:給客服端提供下載服務隨機端口號範圍,默認 21100-21110,與前面的 docker 端口映射設置成一樣。
測試
// 切換路徑
cd /home/ftp/ftptest
// 創建文件
touch 1.txt
瀏覽器訪問:
ftp://ftptest:[email protected]:21
附
// 如果防火牆沒開,執行下面命令
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --reload