基於Docker搭建sftp、ftp服務

sftp服務與ftp服務兩者之間有什麼差異,請百度安利!

sftp服務搭建:

一)sftp image獲取

# docker pull docker.io/atmoz/sftp    //也可不拉取,在執行docker run命令時會自動拉取


二)簡單啓動sftp實例

# docker run -p 22:22 -d  imageXX test:passwd:::upload

a. 執行上述命令後,會創建一個sftp服務實例(container);

b. 進入container後,會看到自動創建了/home/test/upload目錄,該upload目錄即是該sftp的主目錄,上傳的文件即位於該目錄內;

c. 執行上述命令後,會創建密碼爲passwd的test賬號,用該賬號即可訪問使用sftp服務;


三)持久化上傳的文件

採用第二小節命令生成的sftp實例,文件是放在container內的,如果不小心將container刪除了,文件也隨之消失。爲了解決該問題,可以在創建container時,將container的sftp主目錄映射至宿主機目錄,如下:

# docker run -v /host/sharefolder:/home/test/upload -p 22:22 -d imageXX test:passwd:::upload

a. 通過上面命令即可將container主目錄映射至宿主機/host/sharefolder目錄,如果不存在,將會自行創建;


四)sftp遠程登錄

# sftp -P portNum user@sftpServerIP        //sftp -P 22 [email protected]


五) 命令使用

a. 從sftp服務器上下載文件:

sftp>get serverFile localFolder       // get /home/test/upload/index.php /home/test, 將遠程服務器index.php下載至本機/home/test目錄

b. 上傳本地文件至服務器

sftp>put localFile serverFolder



ftp服務搭建:

一)ftp image獲取        //建議拉取fauria/vsftpd,參考網址https://www.jianshu.com/p/e51fe1975c29 

# docker pull fauria/vsftpd


二)實例化ftp服務

#docker run -d\

 -v /my/data/directory:/home/vsftpd\        //home/vsftpd: docker容器ftp文件根目錄,登錄用戶根目錄爲/home/vsftpd/username/

 -v /var/log/vsftpd/: /var/log/vsftpd/\        //var/log/vsftpd: docker容器ftp存儲日誌目錄

 -p 2340:20 -p 2341:21\         //ftp的2個端口號做docker端口映射的時候請保持2個端口號相差1的特點

 -p 21100-21110:21100-21110\        //docker端口映射至宿主機

 -e FTP_USER=test\        //配置用戶,默認是admin

 -e FTP_PASS=123456\        //配置密碼

 -e PASV_MIN_PORT=21100\

 -e PASV_MAX_PORT=21110 \    //PASV_MIN_PORT~ PASV_MAX_PORT給客服端提供下載服務隨機端口號範圍,默認21100-21110,docker端口映射請設置成一樣

 -e PASV_ADDRESS=192.168.222.220\        //當需要使用被動模式時必須設置,定義其他服務器訪問本機使用的ip。關於主動/被動訪問模式更多信息,請參考:https://www.cnblogs.com/xiaohh/p/4789813.html 

 -e  LOG_STDOUT=1\        //是否開啓日誌任意值開啓

 --name vsftpd --restart=always fauria/vsftpd


三)訪問服務

a. web瀏覽器訪問

ftp://test:123456@ip:port


b. FileZilla工具訪問

工具下載地址: https://filezilla-project.org/ 


四)新增用戶

a. 進入容器

# docker exec -i -t vsftpd/containerID bash


b. 爲新用戶創建根目錄

# mkdir /home/vsftpd/zhang


c. 更改所屬用戶和組

# chown -R ftp:ftp /home/vsftpd(請別忘了這一句的執行,否者寫文件的時候可能會存在沒有權限問題)


d. 編輯用戶文件,奇數配置用戶名,偶數配置密碼

vi /etc/vsftpd/virtual_users.txt


e. 將新增用戶寫入服務數據庫

# /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db


f. 重啓實例生效配置

# exit

# docker restart vsftpd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章