Docker 中部署 PureFTPd 并配置被动模式 (Passive Mode)

作为一名刚入行的开发者,你可能对 Docker 和 PureFTPd 的概念还不太熟悉。不用担心,这篇文章将指导你如何使用 Docker 来部署 PureFTPd 并配置被动模式。

什么是 Docker 和 PureFTPd?

  • Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。
  • PureFTPd 是一个安全、稳定且高效的 FTP 服务器软件,支持多种操作系统。

为什么需要配置被动模式?

被动模式允许 FTP 客户端在数据传输过程中主动连接到服务器的端口,这通常在客户端处于防火墙或 NAT 后面时非常有用。

部署流程

下面是部署 PureFTPd 并配置被动模式的步骤:

步骤 描述
1 安装 Docker
2 拉取 PureFTPd 镜像
3 创建并运行容器
4 配置被动模式
5 测试 FTP 连接

详细步骤

1. 安装 Docker

首先,确保你的系统上安装了 Docker。你可以通过访问 Docker 官网获取安装指南。

2. 拉取 PureFTPd 镜像

使用 Docker Hub 上的官方 PureFTPd 镜像:

docker pull stilliard/pure-ftpd

3. 创建并运行容器

创建并运行一个名为 pureftpd 的 Docker 容器:

docker run -d --name pureftpd \
  -e "PUBLICHOST=localhost" \
  -e "FTP_USER_NAME=ftpuser" \
  -e "FTP_USER_PASS=ftppassword" \
  -e "FTP_USER_HOME=/home/ftpuser" \
  -p 21:21 \
  -p 30000-30009:30000-30009 \
  stilliard/pure-ftpd
  • -e 选项用于设置环境变量。
  • -p 选项用于映射端口,21 是 FTP 端口,30000-30009 是被动模式使用的端口范围。

4. 配置被动模式

PureFTPd 默认使用被动模式。但是,如果你需要修改被动模式的配置,可以编辑 /etc/pure-ftpd/pure-ftpd.conf 文件。

docker exec -it pureftpd bash
vi /etc/pure-ftpd/pure-ftpd.conf

找到以下行并确保它们被正确设置:

PassiveMode Yes
PassivePortRange 30000 30009

然后,重启容器以应用更改:

docker restart pureftpd

5. 测试 FTP 连接

使用 FTP 客户端测试你的 FTP 服务器:

ftp localhost

输入之前设置的用户名和密码。

序列图

以下是使用 Docker 部署 PureFTPd 并配置被动模式的序列图:

sequenceDiagram
  participant User as Dev
  participant Docker as Docker
  participant PureFTPd as FTPd

  Dev->>Docker: Install Docker
  Docker-->>User: Installation complete
  Dev->>Docker: Pull PureFTPd image
  Docker-->>User: Image pulled
  Dev->>Docker: Run PureFTPd container
  Docker->>FTPd: Start container
  Dev->>FTPd: Configure passive mode
  FTPd-->>User: Configuration applied
  Dev->>FTPd: Test FTP connection
  FTPd-->>User: Connection successful

结尾

通过这篇文章,你应该已经了解了如何在 Docker 中部署 PureFTPd 并配置被动模式。这是一个简单的过程,只需要几个步骤和一些基本的 Docker 命令。现在,你可以开始使用你的 FTP 服务器了。如果你遇到任何问题,不要忘记查看 Docker 和 PureFTPd 的官方文档,它们是解决问题的宝贵资源。祝你好运!