使用Docker搭建ftp,是比较好的,可以对宿主机有一定的隔离,并且比较简单,可移植。
Step 1.
首先你的机器安装了docker-io或者docker-ce。假如没有就先安装
Centos:$ sudo yum install docker-ce
Ubuntu:$ sudo apt-get update
$ sudo apt-get install docker-ce
其他版本可以上网搜索
Step 2.
其次你要有一个vsftpd的docker镜像
1. docker search vsftpd #寻找vsftpd的镜像
#假如我们找到一个最多引用的,叫fauria/vsftpd
2. docker pull fauria/vsftpd #把镜像pull到本地
Step 3 .创建vsftpd的container
$ docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e
FTP_USER=myuser -e FTP_PASS=mypass -e PASV_ADDRESS=192.168.120.88 -e PASV_MIN_PORT=21100
-e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
#-p进行端口绑定映射
# -v进行文件目录的映射 FTP_UESR 和FTP_PASS如果设定了会在container里面的
#/etc/vsftpd/virtual_users.txt
#PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
#PASV_ADDRESS指的的宿主机地址
Step 4.
修改、完善vsftpd的设置
#1、我们先进入container里面
docker exec -i -t vsftpd bash
#2、修改并生成虚拟用户模式下的用户db文件
vi /etc/vsftpd/virtual_users.txt #编辑配置文件写入用户跟密码
#假如我们添加了user用户
mkdir /home/vsftpd/user #建立新用户文件夹
/usr/bin/db_load -T -t hash
-f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
#把登录的验证信息写入数据库
Step 5.
重启container,验证结果
docker restart vsftpd