一、镜像拉取
# docker pull fauria/vsftpd
二、创建vsftpd容器
#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
docker run -d -v /my/data/directory:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
三、个性化设置
1.进入容器
# docker exec -i -t vsftpd bash
2.为新用户创建目录
# mkdir /home/vsftpd/Public
3.编辑用户文件,奇数行配置用户名,偶数行配置密码
vi /etc/vsftpd/virtual_users.txt
注意:新增的用户名必须和创建的目录名一致,不然会导致登陆出现500错误。
# chown -R ftp:ftp /home/vsftpd(请别忘了这一句的执行,否者写文件的时候可能会存在没有权限问题)
4.将新增用户写入服务数据库
# /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
5.退出容器
exit
6.重启容器
docker restart vsftpd