Docker - 搭建FTP服务器

before

centos7.3 + docker 18.06.3 + fauria/vsftpd

docker中,常用的有ftp服务器镜像有:

  • fauria/vsftpd *****
  • stilliard/pure-ftpd ***
  • panubo/vsftpd **

这里推荐前两个!

fauria/vsftpd

安装

  1. 拉取镜像:
docker pull fauria/vsftpd
  1. 启动
docker run \
-d \
-v /docker_data/vsftpd:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p  21100-21110:21100-21110 \
-e PASV_ADDRESS=192.168.85.132 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
--restart=always \
fauria/vsftpd

上述参数基本可以照抄,就-e PASV_ADDRESS=192.168.85.132这个参数的的ip是宿主机的ip地址,当需要使用被动模式时必须设置。

创建用户

  1. 进入容器交互式环境:
docker exec -it -u root vsftpd bash
  1. 手动创建一个用户目录,目录名即用户名:
mkdir /home/vsftpd/zhangkai
  1. 编辑用户和密码:
vi /etc/vsftpd/virtual_users.txt


使用户名和之前创建的目录名一致。

  1. 将用户信息写入到数据库:
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
  1. 退出交互式环境并重启容器:
exit
docker restart vsftpd

当你使用ftp工具(我这用的是Xftp)上传文件之后,即将将文件上传到挂载卷指向的宿主机的/docker_data/vsftpd/zhangkaizhangkai目录内就是你个人用户的文件存放路径,上传的文件就是在这个目录下。
我们可以在浏览器进行访问ftp://zhangkai:666@192.168.85.132:21

PS:如果有登录提示,就输入账号和密码进行登录。

question

WARNING: IPv4 forwarding is disabled. Networking will not work.

在第一次使用docker run的时候(或者出现无法从外部连接到ftp服务器的时候),执行如下命令:

systemctl restart network && systemctl restart docker

然后再重新尝试。


欢迎斧正,that's all,see also:

linux下使用docker方式部署ftp服务器 | 使用 Docker 快速搭建 FTP 服务 | 使用Docker快速搭建FTP服务器 |
Docker使用pure-ftp的方法及配置 | Docker Pure-ftpd Server | Docker - 在容器中搭建运行FTP服务器(vsftpd) | fauria/vsftpd | docker 中安装文件服务器 vsftpd

posted @ 2018-09-06 20:58  听雨危楼  阅读(900)  评论(0编辑  收藏  举报