Docker – 在容器中搭建运行FTP服务器(vsftpd)

2019-06-04发布:hangge阅读:2396

使用 Docker 搭建 FTP 服务,不仅十分简单,而且可以对宿主机有一定的隔离。下面以 CentOS 系统为例,演示如何通过容器运行 FTP 服务。

1,拉取镜像

首先执行如下命令将镜像下载到本地:

docker pull fauria/vsftpd

2,启动容器

执行如下命令实例化 ftp 服务:

参数说明:

  • /home/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录)
  • -p:映射 docker 端口(冒号前面是宿主机的端口)
  • -e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test
  • PASV_ADDRESS:宿主机 ip,当需要使用被动模式时必须设置。
  • PASV_MIN_PORT~ PASV_MAX_PORT:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。
docker run -d -v /home/ftp:/home/vsftpd \``-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \``-e FTP_USER=test -e FTP_PASS=test \``-e PASV_ADDRESS=192.168.60.128 \``-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \``--name vsftpd --restart=always fauria/vsftpd

3,防火墙配置

如果 CentOS 服务器有防火墙,为了让客户端能够访问 ftp 服务。我们可以关闭防火墙,或者执行如下命令配置 firewall 防火墙策略:

firewall-cmd --permanent --add-port=20/tcp``firewall-cmd --permanent --add-port=21/tcp``firewall-cmd --permanent --add-port=21100/tcp``firewall-cmd --permanent --add-port=21101/tcp``firewall-cmd --permanent --add-port=21102/tcp``firewall-cmd --permanent --add-port=21103/tcp``firewall-cmd --permanent --add-port=21104/tcp``firewall-cmd --permanent --add-port=21105/tcp``firewall-cmd --permanent --add-port=21106/tcp``firewall-cmd --permanent --add-port=21107/tcp``firewall-cmd --permanent --add-port=21108/tcp``firewall-cmd --permanent --add-port=21109/tcp``firewall-cmd --permanent --add-port=21110/tcp``firewall-cmd --reload

4,新建用户文件夹

(1)首先执行如下命令进入到容器里面:

docker ``exec` `-i -t vsftpd bash

(2)由于前面我们启动的时候设置用户名为 test,已经自动创建对应的用户文件夹(所以下面这个文件夹无需我们再次手动创建):

mkdir` `/home/vsftpd/test

(3)为方便演示,在 test 用户文件夹下新建一个 1.txt 文件。

vi /home/vsftpd/test/1.txt

5,访问服务

(1)我们可以直接使用浏览器进行访问,地址如下:

原文:Docker - 在容器中搭建运行FTP服务器(vsftpd)

(2)也可以使用 ftp 客户端工具进行访问。

原文:Docker - 在容器中搭建运行FTP服务器(vsftpd)

(3)如果是 Mac 电脑,我们还可以通过“访达”->“前往”->“**连接服务器...**”来访问 ftp 服务。

原文:Docker - 在容器中搭建运行FTP服务器(vsftpd)

附:增加一个新用户

前面我们在启动服务的时候就创建了个默认用户 test。如果需要新增一个新用户,假设用户名:hangge,密码:123456,具体操作如下。

(1)首先执行如下命令进入到容器里面:

docker ``exec` `-i -t vsftpd bash

(2)创建新用户的文件夹:

mkdir` `/home/vsftpd/hangge

(3)编辑用户配置文件:

vi /etc/vsftpd/virtual_users.txt

(4)在文件中添加新用户的用户名和密码:

原文:Docker - 在容器中搭建运行FTP服务器(vsftpd)

(5)保存退出后执行如下命令,把登录的验证信息写入数据库。

/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

(6)最后退出容器,并重启容器可以使用新用户连接 FTP 服务了。

exit``docker restart vsftpd

原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2449.html