约定:
OS:Centos7.6
ftp端口:7400,7401,7402-7412;其中7400对应20端口,7401对应21端口,其他端口为被动模式下的数据端口
ftp测试账号和密码 ftptest/123456
ftp自定账号和密码 ftpsamba/123456
目标:
构建ftp服务
1.下载镜像
fauria/vsftpd
2.启动容器
docker run -d -v /opt/ftp/ftptest:/home/vsftpd/ftptest -p 7400:20 -p 7401:21 -p 7402-7412:7402-7412 -e FTP_USER=ftptest -e FTP_PASS=123456 -e PASV_ADDRESS=192.168.125.163 -e PASV_MIN_PORT=7402 -e PASV_MAX_PORT=7412 --name myvsftpd --restart=always fauria/vsftpd
3.检查运行
如下图所示说明容器启动成功
4.端口设置
iptables -I INPUT -p tcp --dport 7400 -j ACCEPT iptables -I INPUT -p tcp --dport 7401 -j ACCEPT iptables -I INPUT -p tcp --dport 7402 -j ACCEPT iptables -I INPUT -p tcp --dport 7403 -j ACCEPT iptables -I INPUT -p tcp --dport 7404 -j ACCEPT iptables -I INPUT -p tcp --dport 7405 -j ACCEPT iptables -I INPUT -p tcp --dport 7406 -j ACCEPT iptables -I INPUT -p tcp --dport 7407 -j ACCEPT iptables -I INPUT -p tcp --dport 7408 -j ACCEPT iptables -I INPUT -p tcp --dport 7409 -j ACCEPT iptables -I INPUT -p tcp --dport 7410 -j ACCEPT iptables -I INPUT -p tcp --dport 7411 -j ACCEPT iptables -I INPUT -p tcp --dport 7412 -j ACCEPT #保存配置 service iptables save
5.连接测试
连接配置
上传测试
如果所示,说明配置成功。
6.多用户下构建自定账号、文件目录配置
为了保证新增的FTP账号和访问的目录和Docker宿主上的真正的文件目录能够映射起来,因此采用了一下方式进行配置。
应用场景示例:DOCKER+FTP+SAMBA组合使用,其中SAMBA所映射的宿主目录为真正的文件目录,而FTP、SAMBA均为映射目录。
注意:多用户的构建是在单用户构建的基础之上进行的。
a.进入容器
docker
exec
-it myvsftpd /bin/bash
b.选择目录
此处我们选择SAMBA共享的目录:/home/bizsmb/data
c.查看容器
docker ps
如图所示,记住当前容器Id:eff7bb079c44
d.停运容器
docker stop myvsftpd
e.配置目录
cd /var/lib/docker/containers
查看当前容器ID对应的容器目录: ls
进入容器配置目录
cd e7f7bb079c444420f407bbc34717942577d2f795a37614020a7bca922982ee54
查看目录文件 ls
f.修改config.v2.json配置
vi config.v2.json |python -m json.tool ,找到如下截图位置,新增与"/home/vsftpd/ftptest"平行的JSON节点:
g.新FTP账号配置
由于宿主映射到docker时,应确保容器对应的目录,新的FTP账号是存在的,因此重新运行容器并进入。
docker exec -it myvsftpd /bin/bash
vi /etc/vsftpd/virtual_users.txt
在编辑中新建账号 ftpsmb,密码123456,保存退出
新建FTP账号访问目录
mkdir -p /home/vsftpd/ftpsmb
生成二进制文件
db_load -T -t hash -f/etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
退出重启容器
ftp连接测试
如图所示,说明FTP新账号新增OK。
退出关闭容器
h.备份配置
回到第f步骤
先备份配置文件
cp config.v2.json config.v2.json.bak
cp hostconfig.json hostconfig.json.bak
i.开始配置
配置说明如下图
具体操作如下:
a.进入目录
cd /var/lib/docker/containers
b.使用ftp下载配置文件
下载:hostconfig.json
config.v2.json
c.修改config.v2.json
格式化json覆盖源文件,参考截图进行修改
d.修改hostconfig.json
格式化json覆盖源文件,参考截图进行修改
e.保存并上传配置
注意:备份原始配置文件后再上传。
j.重启容器,Docker服务
systemctl restart docker
k.ftp连接测试
此时连接Ok