1,下载sftp的docker 镜像:
docker pull atmoz/sftp
2,创建sftp容器:
docker run -d -p 10022:22 --name sftpd -v /home/sharefolder/:/home/test/upload atmoz/sftp test:sftptest:::upload
说明:
-p 10022:22 将容器默认的22端口映射为宿主机的10022端口
--name sftpd 容器名称为sftpd
test:sftptest:::upload test为用户名,sftptest为密码,upload为sftp主目录
atmoz/sftp 镜像名称
-v /home/sharefolder/:/home/test/upload 将容器里地址 /home/test/upload挂载到宿主机的 /home/sharefolder/,/home/test/upload为sftp的主目录,上传的文件就在这里,其中/test目录为docker命令中最后test:sftptest:::upload部分而来,宿主机的目录/home/sharefolder/若不存在将自动创建
3,使用xshell连接sftp服务
新建连接,属性填写如下:
用户名密码就是刚才创建容器设置的用户名密码
4,下载文件测试
使用xshell登录后,会显示如下命令行头部,也会提示当前默认映射的本地地址在C盘下
然后在宿主机的目录/home/sharefolder/下创建一个test.txt文件,并写入内容test code
>>touch test.txt
>>vi text.tst
输入内容:test code
esc :wq! 保存退出
在容器的挂载目录下查看,已存在该test文件
在sftp连接页面,使用get命令,即可拉取文件到本地默认路径,若要更改本地路径,则输入lcd命令,回车,会弹出选择本地路径的选择框,直接选择就可以:
在使用get命令前,需要先cd到SFTP的主目录下,或者填写完整路径也可以
我这里更改本地路径为桌面,然后进入到SFTP主目录/upload下,直接执行get test.txt,则文件将直接下载到本地桌面,下载测试完成
5,上传文件测试
直接进入到sftp的主目录/upload 下,然后拖拽文件即可
6,SFTP常用命令:
cd 路径 更改远程目录到“路径”
lcd 路径 更改本地目录到“路径”
chgrp group path 将文件“path”的组更改为“group”
chmod mode path 将文件“path”的权限更改为“mode”
chown owner path 将文件“path”的属主更改为“owner”
exit 退出 sftp
help 显示这个帮助文本
get 远程路径 下载文件
ln existingpath linkpath 符号链接远程文件
ls [选项] [路径] 显示远程目录列表
lls [选项] [路径] 显示本地目录列表
mkdir 路径 创建远程目录
lmkdir 路径 创建本地目录
mv oldpath newpath 移动远程文件
open [用户@]主机[:端口] 连接到远程主机
put 本地路径 上传文件
pwd 显示远程工作目录
lpwd 打印本地工作目录
quit 退出 sftp
rmdir 路径 移除远程目录
lrmdir 路径 移除本地目录
rm 路径 删除远程文件
lrm 路径 删除本地文件
symlink existingpath linkpath 符号链接远程文件
version 显示协议版本