
gists/pure-ftpdPure-FTPd Docker镜像是基于Pure-FTPd构建的容器化解决方案,Pure-FTPd是一款免费(BSD许可)、安全、生产级质量且符合标准的FTP服务器。该镜像提供了便捷的部署方式,适用于需要快速搭建可靠FTP服务的场景。
该镜像使用以下数据卷实现数据持久化:
| 数据卷路径 | 说明 |
|---|---|
/home/ftpuser | FTP用户的数据存储目录 |
/etc/pureftpd | Pure-FTPd的配置文件目录 |
支持通过以下环境变量自定义服务行为:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
PUBLIC_HOST | localhost | 用于PASV模式支持的IP/主机名设置 |
MIN_PASV_PORT | 30000 | PASV模式最小端口号 |
MAX_PASV_PORT | 30009 | PASV模式最大端口号 |
UID | 1000 | FTP系统用户(ftpuser)的用户ID |
GID | 1000 | FTP系统用户组(ftpgroup)的组ID |
通过以下命令快速启动Pure-FTPd容器:
bashdocker run \ -d \ --name pure-ftpd \ -p 21:21 \ -p 30000-30009:30000-30009 \ -v $(pwd)/pureftpd:/etc/pureftpd \ -v /your/data:/home/ftpuser \ gists/pure-ftpd
注意:自Docker 1.5版本起,支持端口范围导出。
-d:后台运行容器--name pure-ftpd:指定容器名称为pure-ftpd-p 21:21:映射FTP控制端口-p 30000-30009:30000-30009:映射PASV模式端口范围-v $(pwd)/pureftpd:/etc/pureftpd:挂载本地目录到容器配置目录,持久化配置文件-v /your/data:/home/ftpuser:挂载本地数据目录到容器FTP用户数据目录使用docker-compose.yml配置文件部署:
yamlpure-ftpd: image: gists/pure-ftpd container_name: pure-ftpd ports: - "21:21" - "30000-30009:30000-30009" volumes: - /your/data:/home/ftpuser # 本地数据目录挂载 - ./pureftpd:/etc/pureftpd # 本地配置目录挂载 restart: always # 容器退出时自动重启
为确保FTP用户能正常访问数据目录,需设置/home/ftpuser目录的权限:
bashdocker exec -it pure-ftpd chown ftpuser:ftpgroup -R /home/ftpuser
Pure-FTPd使用虚拟用户进行FTP登录,需通过pure-pw命令创建:
bash# ftpuser为系统用户,test为创建的FTP虚拟用户 docker exec -it pure-ftpd pure-pw useradd test -m -u ftpuser -d /home/ftpuser/test
-m:自动生成用户数据库文件-u ftpuser:关联虚拟用户到系统用户ftpuser-d /home/ftpuser/test:指定虚拟用户的主目录创建虚拟用户后,需刷新密码文件才能使新用户生效:
bashdocker exec -it pure-ftpd pure-pw mkdb
Pure-FTPd可通过以下核心参数配置服务(镜像默认已包含常用配置):
| 参数 | 说明 |
|---|---|
| `-C | --maxclientsperip |
| `-l | --login puredb:/etc/pureftpd.pdb` |
| `-E | --noanonymous` |
| `-j | --createhomedir` |
| `-R | --nochmod` |
-P <IP/Host> | 设置PASV模式支持的IP/主机名(对应PUBLIC_HOST环境变量) |
-p <min>:<max> | 设置PASV模式端口范围(对应MIN_PASV_PORT和MAX_PASV_PORT环境变量) |






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务