Docker - 在容器中搭建 FTP 伺服器 (vsftpd)
本文于 587 天之前發表,文章内容可能已經過時。
Docker - 在容器中搭建 FTP 伺服器 (vsftpd)
使用 Docker 搭建 FTP 服務,不僅十分簡單,而且可以對宿主機有一定的隔離。
下面以 CentOS 系統為例,演示如何通過容器運行 FTP 服務。
- 拉取鏡像
首先執行如下命令將鏡像下載至電腦:
1 | docker pull fauria/vsftpd |
- 啓動容器
執行如下命令實例化 FTP 服務:
1 | 參數說明: |
1 | docker run -d -v /home/ftp:/home/vsftpd \ |
- 防火牆配置
如果 CentOS 服務器有防火牆,為了讓客戶端能夠訪問 FTP 服務。
我們可以關閉防火牆,或者執行如下命令配置 firewall 防火牆策略:
(此步驟可忽略)
1 | firewall-cmd --permanent --add-port=20/tcp |
- 新建用戶文件夾
(1) 首先執行如下命令進入到容器裡面:
1 | docker exec -i -t vsftpd bash |
(2) 由於前面我們啓動的時候設置用戶名為 test,
已經自動創建對應的用戶文件夾(所以下面這個文件夾無需我們再次手動創建):
1 | mkdir /home/vsftpd/test |
(3) 為方便演示,在 test 用戶文件夾下新建一個 1.txt 文件。
1 | vi /home/vsftpd/test/1.txt |
- 訪問服務
(1)我們可以直接使用瀏覽器進行訪問,地址如下:
1 | ftp://test:test@192.168.60.128:21 |
(2)也可以使用 FTP 客戶端工具進行訪問。
(3)如果是 MacOS,我們還可以通過「Finder」->「前往」->「連接伺服器…」來訪問 FTP 服務。
附:增加一個新用戶
前面我們在啓動服務的時候就創建了個默認用戶 test。
如果需要新增一個新用戶,假設用戶名稱:tinxie,密碼:123456,具體操作如下。
(1)首先執行如下命令進入到容器裡面:
1 | docker exec -i -t vsftpd bash |
(2)創建新用戶的資料夾:
1 | mkdir /home/vsftpd/tinxie |
(3)編輯用戶配置文件:
1 | vi /etc/vsftpd/virtual_users.txt |
(4)在文件中新增新用戶的用戶名和密碼:
(5)保存退出後執行如下命令,把登錄的驗證資訊寫入資料庫。
1 | /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db |
(6)最後退出容器,並重啓容器可以使用新用戶連接 FTP 服務了。
1 | exit |