在容器中搭建運行FTP服務器(vsftpd)


使用 Docker 搭建 FTP 服務,不僅十分簡單,而且可以對宿主機有一定的隔離。下面以Ubuntu系統為例,演示如何通過容器運行 FTP 服務。

1,拉取鏡像

首先執行如下命令將鏡像下載到本地:

docker pull fauria/vsftpd

2,啟動容器

執行如下命令實例化 ftp 服務:

 

參數說明:
/Ftpfile:/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 端口映射設置成一樣。
sudo docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 \
-v /Ftpfile:/home/vsftpd -e FTP_USER=root -e FTP_PASS=root \
-e PASV_ADDRESS=10.170.66.129 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name ftpserver --restart=always fauria/vsftpd

3,防火牆配置

    如果Ubuntu服務器有防火牆,為了讓客戶端能夠訪問 ftp 服務。我們可以關閉防火牆,或者執行如下命令配置 firewall 防火牆策略:

firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=21100/tcp
firewall-cmd --permanent --add-port=21101/tcp
firewall-cmd --permanent --add-port=21102/tcp
firewall-cmd --permanent --add-port=21103/tcp
firewall-cmd --permanent --add-port=21104/tcp
firewall-cmd --permanent --add-port=21105/tcp
firewall-cmd --permanent --add-port=21106/tcp
firewall-cmd --permanent --add-port=21107/tcp
firewall-cmd --permanent --add-port=21108/tcp
firewall-cmd --permanent --add-port=21109/tcp
firewall-cmd --permanent --add-port=21110/tcp
firewall-cmd --reload

4,新建用戶文件夾

(1)首先執行如下命令進入到容器里面:
docker exec -i -t ftpserver bash

(2)由於前面我們啟動的時候設置用戶名為root,已經自動創建對應的用戶文件夾(所以下面這個文件夾無需我們再次手動創建): 

mkdir /home/vsftpd/root

(3)為方便演示,在 test 用戶文件夾下新建一個 1.txt 文件:

vi /home/vsftpd/test/1.txt

5,訪問服務

(1)我們可以直接使用瀏覽器進行訪問,地址如下:

(2)也可以使用 ftp 客戶端工具進行訪問。

(3)如果是 Mac 電腦,我們還可以通過“訪達”->“前往”->“連接服務器...”來訪問 ftp 服務。

附:增加一個新用戶

    前面我們在啟動服務的時候就創建了個默認用戶root。如果需要新增一個新用戶,假設用戶名:hangge,密碼:123456,具體操作如下。 

(1)首先執行如下命令進入到容器里面:

docker exec -i -t ftpserver bash

(2)創建新用戶的文件夾:

mkdir /home/vsftpd/hangge

(3)編輯用戶配置文件:

vi /etc/vsftpd/virtual_users.txt

(4)在文件中添加新用戶的用戶名和密碼:

(5)保存退出后執行如下命令,把登錄的驗證信息寫入數據庫。
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
chown -R ftp:ftp /home/vsftpd

(6)最后退出容器,並重啟容器可以使用新用戶連接 FTP 服務了。

exit
docker restart vsftpd

  

  

 
 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM