1-查询可用的docker镜像
docker search sftp

2-拉取并启动服务
docker run --restart=always --name mysftp -p 2344:22 -d atmoz/sftp root:root123:::/home/upload

–restart=always 总是重启
–name mysftp 容器名称
root:root123:::upload 其中第一个root为用户名,root123为密码,upload为上传的文件会保存到容器里面的/home/admin/upload目录里面(用户名密码不要用本机用户名密码,会连接不上如下图)

-p 2344:22 将宿主机的2344端口映射到容器的22端口,这样方位宿主机的2344端口则会转发到容器的22端口上
-d atmoz/sftp 使用dockup hub中的atmoz/sftp镜像创建容器
3-查看并使用sftp
docker ps | grep sftp
![]()
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不存在会自动创建
- –privileged=true 由于linux的selinux安全规则所以需要给容器加特权
- –name mysftp2 名字也换了一个因为name不能重复,端口也是重复了容器会启动不了
5-创建多用户sftp服务
如果你想给sftp配置多个用户可以有两个方式:
在容器中创建用户并指派权限
在宿主机上编写用户文件然后挂载到容器中
第一种直接使用上面的就可以,下面的是第二种方式
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下存放上传的文件
创建本地 /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:这里创建的用户目录默认组和用户都是root没有权限,需要手动修改一下。
版权声明:本文为qq_18896247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。