介绍
利用docker搭建ftp服务器非常方便。
在局域网环境可以上传一些常用安装包或做一个书籍存储的资料库。
创建单用户容器
docker run -d -v /home/ftp_server:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=192.168.x.x -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd fauria/vsftpd
解释一下命令:
-v:将一个文件夹ftp_server作为vsftpd的文件目录。之后所有存的东西都在这里面。
-p:20端口是传输端口,21是连接端口,21100-21110是分配的下载端口,如果不想占用主机的,可以换到别的,比如33000:20,33001:21,33010-33020:21100-21110
-e FTP_USER FTP_PASS,设置用户和密码
-e PASV_ADDRESS=192.168.x.x 如果有其他服务器访问,可以通过这个ip
-e PASV_MIN/MAX_PORT=21100/21110 设置分配下载端口
访问
- 通过浏览器访问
如果访问:ftp://192.168.1.x.x:21/,会让输入密码。
如果访问:ftp://user:pass@192.168.1.x.x:21/,就可以直接进 - winscp
把 ip 用户名 密码 填进去就好了。
添加用户
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/myuser
echo -e "myuser\nmypass" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd
tips
- ftp_server文件夹内,先是按用户名分类的,每创建一个用户X,就会多一个文件夹X;用户登陆X用户,上传文件,是传到X文件夹内的;如此就做了用户隔离。
- 在docker的宿主机中,可以直接用root用户将文件mv到ftp_server/user/下,不需要上传。
参考
https://github.com/fauria/docker-vsftpd
https://www.cnblogs.com/sdhzdtwhm/p/9921176.html
网友评论