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瀏覽器訪問
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