docker安裝sftp并實現(xiàn)文件上傳
1、查詢可用的docker鏡像
docker search sftp

一如既往選用官方自帶的心情會很美!?(′???`?)
2、拉取并啟動服務
docker run --restart=always --name mysftp -p 2294:22 -d atmoz/sftp admin:admin:::upload
做個簡單的解釋:
- –restart=always 總是重啟
- –name mysftp 容器名稱
- admin:admin:::upload 其中第一個admin為用戶名,admin為密碼,upload為上傳的文件會保存到容器里面的/home/admin/upload目錄里面
- -p 2294:22 將宿主機的2294端口映射到容器的22端口,這樣方位宿主機的2294端口則會轉發(fā)到容器的22端口上
- -d atmoz/sftp 使用dockup hub中的atmoz/sftp鏡像創(chuàng)建容器
PS:請勿在生產環(huán)境使用此方式,因為這個并沒有將docker容器映射到本地,如container丟失將失去所有文件
3、查看并使用sftp
docker ps | grep sftp

很明顯已經啟動成功了,下面用珍藏已久的SecureFX連接

已經可以開心的上傳下載文件了。
4、sftp上傳文件目錄在宿主機目錄
docker run --name mysftp2 -v /host/upload:/home/admin/upload --privileged=true -p 2295:22 -d atmoz/sftp admin:admin:1001
- -v /host/upload:/home/admin/upload 其中冒號前邊的是宿主機目錄,后邊的掛載到容器中的目錄,如果本地目錄/host/uplaod不存在會自動創(chuàng)建
- –privileged=true 由于linux的selinux安全規(guī)則所以需要給容器加特權
- –name mysftp2 名字也換了一個因為name不能重復,端口也是重復了容器會啟動不了
5、 創(chuàng)建多用戶sftp服務
如果你想給sftp配置多個用戶可以有兩個方式:
- 在容器中創(chuàng)建用戶并指派權限
- 在宿主機上編寫用戶文件然后掛載到容器中
第一種直接使用上面的就可以,下面的是第二種方式
docker run --name mysftp3 -v /host/users.conf:/etc/sftp/users.conf:ro -v /home/sftp:/home --privileged=true -p 2296:22 -d atmoz/sftp
- -v /host/users.conf:/etc/sftp/users.conf:ro 將本地的/host/users.conf映射到容器的/etc/sftp/users.conf,并且在容器內為只讀
- -v /home/sftp:/home 將本地/home/sftp目錄映射到容器/home下存放上傳的文件
創(chuàng)建本地 /host/users.conf文件
vim /host/users.conf
xiaoming:123:1001:100 goudan:abc:1002:100 erzhu:xyz:1003:100
其中 user:pass:uid:gid 用戶名:密碼:用戶id:組id
ps:這里創(chuàng)建的用戶目錄默認組和用戶都是root沒有權限,需要手動修改一下。
這樣小組就可以開心使用了!
到此這篇關于docker安裝sftp并實現(xiàn)文件上傳的文章就介紹到這了,更多相關docker sftp文件上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

