Linux Docker 之 Vsftpd 安装

最近公司因为使用fastdfs做文件存储,但因为项目需要,需要使用FTP的方式访问fastdfs对应的文件。由此想到的解决方案为两者均挂载同一文件目录。

1.首先下载vsftpd镜像

docker pull fauria/vsftpd

2.运行镜像并将文件目录挂载至fastdfs存储目录

设置的fastdfs文件实际存储目录: /var/fastdfs/storage/data

docker run -p 55508:20 -p 55509:21 -p  55540-55550:55540-55550 \
 -e FTP_USER=test -e FTP_PASS=test \
 -e PASV_ADDRESS=宿主机外网IP \
 -e PASV_MIN_PORT=55540 -e PASV_MAX_PORT=55550 \
 -v /var/fastdfs/storage/data:/home/vsftpd/admin/ \
 --name vsftpd --privileged=true --restart=always fauria/vsftpd

参数解读:

  • /var/fastdfs/storage/data:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录)
  • -p:映射 docker 端口(冒号前面是宿主机的端口)
  • -e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test)
  • PASV_ADDRESS:宿主机外网 ip,当需要使用被动模式时必须设置。
  • PASV_MIN_PORT~ PASV_MAX_PORT:给客户端提供下载服务随机端口号范围,默认  55540-55550,与前面的 docker 端口映射设置成一样。

由于fauria/vsftpd的编排文件中有问题,故而以上的运行不能快速启动使用,原因是挂载了宿主机的目录后,由于宿主机对应目录已存在较多文件,从而引发vsftpd中授权文件多而不能快速启用

解决方案:

1.关闭针对/home/vsftpd/的权限管理

进入:vsftpd内部

docker exec -it vsftpd /bin/sh

找到run-vsftpd.sh文件,默认文件目录:/usr/sbin/run-vsftpd.sh

vi /usr/sbin/run-vsftpd.sh

注释:chown -R ftp:ftp /home/vsftpd/

  由于连接比较缓慢存在缓存,调整期参数,添加以下代码:

sed -i "/reverse_lookup_enable/d" /etc/vsftpd/vsftpd.conf
echo "reverse_lookup_enable=NO" >> /etc/vsftpd/vsftpd.conf

保存文件后直接在docker中运行:/usr/sbin/run-vsftpd.sh

sh /usr/sbin/run-vsftpd.sh

2.vsftpd和fastdfs同时创建对应容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值