Centos7 Docker部署/搭建vsftpd/ftp

获取vsftpd/ftp镜像

docker pull fauria/vsftpd

实例

使用自定义用户帐户创建容器,映射数据目录并启用主动被动模式:

docker run -d -v /data/ftp:/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

工作讲解:

        该实例公开了端口2021. 此外,映射了一个目录:本机/data/ftp目录到容器/home/vsftpd目录

参数讲解:

-d后台启动
-v映射路径。(宿主机路径:容器路径)
-p映射端口。(需要开放的端口:容器默认开放端口)
-e设置环境变量
--name指定容器名称
--restart=always重启或启动Docker时,容器将自动重启或启动
FTP_USER默认 FTP 帐户的用户名。如果FTP_USER在运行时没有通过环境变量指定,admin将默认使用
FTP_PASS如果您没有通过 为默认的 FTP 帐户指定密码,FTP_PASS则会自动生成一个 16 个字符的随机字符串。
PASV_ADDRESSDocker 宿主机 IP / 主机名。(192.168.xx.xxx)
PASV_MIN_PORT这将用作被动模式端口范围的下限。给客户提供的下载服务随机端口
PASV_MAX_PORT

这将用作被动模式端口范围的上限。给客户提供的下载服务随机端口

共享目录主机上的/data/ftp目录就是共享目录,映射到docker中的/home/vsftpd目录

访问过程中需要开启或关闭的服务

#关闭防火墙
systemctl stop firewalld

#关闭SE
setenforce 0

#打开我的电脑,直接访问,无任何阻拦,记得登入账户和密码
ftp://192.168.xx.xxx

-----------------------------------------------------------------------------------------
#特定需求需要开防火墙端口

#开放端口
firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=21100/tcp --permanent
firewall-cmd --zone=public --add-port=21101/tcp --permanent
firewall-cmd --zone=public --add-port=21102/tcp --permanent
firewall-cmd --zone=public --add-port=21103/tcp --permanent
firewall-cmd --zone=public --add-port=21104/tcp --permanent
firewall-cmd --zone=public --add-port=21105/tcp --permanent
firewall-cmd --zone=public --add-port=21106/tcp --permanent
firewall-cmd --zone=public --add-port=21107/tcp --permanent
firewall-cmd --zone=public --add-port=21108/tcp --permanent
firewall-cmd --zone=public --add-port=21109/tcp --permanent
firewall-cmd --zone=public --add-port=21110/tcp --permanent

#刷新firewalld
firewall-cmd --reload

-----------------------------------------------------------------------------------------
#关闭端口方法
firewall-cmd --zone=public --remove-port=21110/tcp --permanent
firewall-cmd --reload

 添加新的 FTP 用户添加到现有容器:

docker exec -it vsftpd bash
mkdir /home/vsftpd/myuser1
echo -e "myuser1\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
#账户和密码都存在了容器中的这个文件里面
cat /etc/vsftpd/virtual_users.txt

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

系统运维

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值