vsftpd@容器运行pure-ftpd
stilliard/pure-ftpd 是一个基于 Pure-FTPd 的轻量级 Docker 镜像,适用于在容器中快速部署 FTP 服务器。该镜像由 Andrew Stilliard 维护,旨在提供一个安全、易于配置的 FTP 服务,特别适合与其他容器(如 WordPress、PrestaShop 等)共享数据卷的场景。
🧰 核心功能
基于 Pure-FTPd:使用 Pure-FTPd 作为 FTP 服务核心,支持虚拟用户、TLS 加密等功能。
多种标签(Tags):提供多个标签以满足不同需求,如
latest、hardened(强化安全配置)、jessie-latest等。环境变量配置:通过设置环境变量(如
FTP_USER_NAME、FTP_USER_PASS、FTP_USER_HOME)即可快速添加 FTP 用户。被动模式支持:默认开放 30000–30009 端口范围,支持 FTP 被动模式连接。
TLS 加密:支持通过设置
ADDED_FLAGS="--tls=2"启用 TLS 加密传输。
🚀 快速启动示例
以下命令将启动一个名为 ftpd_server 的容器,并配置 FTP 用户:
1 | docker run -d --name ftpd_server \ |
这将创建一个用户名为 bob、密码为 secret 的 FTP 用户,其主目录为 /home/ftpusers/bob。
1 | docker run -d \ |
1 | services: |
🔧 常用配置选项
- **
PUBLICHOST**:设置被动模式下的公共主机名或 IP 地址。 - **
ADDED_FLAGS**:添加额外的 Pure-FTPd 启动参数,例如启用 TLS:--tls=2。 - **
FTP_USER_UID和FTP_USER_GID**:设置 FTP 用户的 UID 和 GID,确保与挂载卷的权限匹配。
📁 与其他容器共享数据卷
可将此镜像与其他容器(如 WordPress)共享数据卷,实现文件的上传和管理。
1 | services: |
在上述配置中,FTP 用户的 UID 和 GID 设置为 33,以匹配 WordPress 容器中 www-data 用户的权限,从而避免权限问题。
🔒 安全建议
- 使用强化标签:建议使用
hardened标签,以获得更安全的默认配置。 - 启用 TLS:通过设置
ADDED_FLAGS="--tls=2"启用 TLS 加密,确保数据传输的安全性。 - 限制连接数:可通过设置
MAX_CONNECTIONS环境变量限制最大连接数,例如MAX_CONNECTIONS=20。
验证连接
ftp 127.0.0.1
用户名:ftpuser
密码:ftppass
或使用 lftp:
lftp -u ftpuser,ftppass ftp://127.0.0.1