
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://img.shields.io/docker/v/instantlinux/proftpd?sort=date](https://hub.docker.com/r/instantlinux/proftpd/tags "Version badge") https://img.shields.io/docker/image-size/instantlinux/proftpd?sort=date](https://github.com/instantlinux/docker-tools/tree/main/images/proftpd "Image badge") https://img.shields.io/badge/dockerfile-latest-blue](https://gitlab.com/instantlinux/docker-tools/-/blob/main/images/proftpd/Dockerfile "dockerfile")
一个易用、轻量且功能齐全的ProFTPD安装。
本镜像提供了ProFTPD的轻量级部署方案,支持FTP和SFTP协议,可通过环境变量快速配置核心功能,也支持挂载自定义配置文件进行高级定制。适用于Docker和Kubernetes环境中的文件传输服务,尤其适合需要快速部署***FTP服务或指定用户上传服务的场景。
基本配置
最常用的配置项可通过环境变量指定,其中PASV_ADDRESS为必填项。如需进一步自定义,可将配置文件挂载到/etc/proftpd.d和/etc/proftpd/modules.d目录。
若启用SFTP,需创建持久化卷并挂载到/etc/ssh,避免每次创建容器时重新生成SSH密钥。
创建上传用户密码密钥
可通过FTPUSER_xxx变量指定单个上传用户,需先创建加密密码密钥:
bashpython -c "import crypt,random,string; \ print crypt.crypt('YOURPASSWORD', '\$6\ #### 部署示例 ##### Docker Compose 提供了`docker-compose.yml`示例,适用于在Docker Swarm中共享网络附加卷作为只读***FTP服务的常见场景。 ##### Kubernetes部署 可通过helm或kubernetes.yaml部署,克隆仓库后使用`make`命令: ```bash git clone https://github.com/instantlinux/docker-tools.git cd docker-tools/k8s make proftpd
(需自定义https://github.com/instantlinux/docker-tools/blob/main/k8s/Makefile.vars%E9%85%8D%E7%BD%AE%EF%BC%89
以下环境变量可在kubernetes.yaml或docker-compose.yml中指定:
| 变量 | 默认值 | 描述 |
|---|---|---|
| ALLOW_OVERWRITE | on | 允许客户端修改文件 |
| ANONYMOUS_DISABLE | off | ***登录 |
| ANON_UPLOAD_ENABLE | DenyAll | ***上传 |
| FTPUSER_NAME | ftpuser | 上传用户名 |
| FTPUSER_SECRETNAME | ftp-user-password-secret | 加密密码密钥名称 |
| FTPUSER_UID | 1001 | 上传文件的所有者UID |
| LOCAL_UMASK | 022 | 上传文件的权限掩码 |
| MAX_CLIENTS | 10 | 最大同时登录数 |
| MAX_INSTANCES | 30 | 进程限制 |
| PASV_ADDRESS | 必填——Docker引擎的地址 | |
| PASV_MAX_PORT | 30100 | 客户端端口范围(修改需重建镜像) |
| PASV_MIN_PORT | 30091 | |
| SFTP_ENABLE | off | 使用SFTP而非FTP |
| SFTP_PORT | 2222 | SFTP端口 |
| TIMES_GMT | off | 目录列表使用本地时间 |
| TZ | UTC | 本地时区 |
| WRITE_ENABLE | AllowAll | 允许上传/删除操作 |
| 密钥 | 描述 |
|---|---|
| ftp-user-password-secret | (可选)上传用户的加密密码 |
如果您想对此镜像进行改进,请参阅https://github.com/instantlinux/docker-tools/blob/main/CONTRIBUTING.md%E3%80%82
https://img.shields.io/badge/license-GPL--2.0-red.svg](https://choosealicense.com/licenses/gpl-2.0/ "License badge") https://img.shields.io/badge/code-proftpd%2Fproftpd-blue.svg](https://github.com/proftpd/proftpd "Code repo") + ''.join(
[random.choice(string.ascii_letters + string.digits)
for _ in range(16)]))" |
docker secret create ftp-user-password-secret -
#### 部署示例 ##### Docker Compose 提供了__CODE_TOKEN_7__示例,适用于在Docker Swarm中共享网络附加卷作为只读***FTP服务的常见场景。 ##### Kubernetes部署 可通过helm或kubernetes.yaml部署,克隆仓库后使用__CODE_TOKEN_8__命令: __CODE_TOKEN_1__ (需自定义https://github.com/instantlinux/docker-tools/blob/main/k8s/Makefile.vars配置) ### 环境变量 以下环境变量可在kubernetes.yaml或docker-compose.yml中指定: | 变量 | 默认值 | 描述 | |---------------------|-------------------------|----------------------------------------| | ALLOW_OVERWRITE | on | 允许客户端修改文件 | | ANONYMOUS_DISABLE | off | ***登录 | | ANON_UPLOAD_ENABLE | DenyAll | ***上传 | | FTPUSER_NAME | ftpuser | 上传用户名 | | FTPUSER_SECRETNAME | ftp-user-password-secret| 加密密码密钥名称 | | FTPUSER_UID | 1001 | 上传文件的所有者UID | | LOCAL_UMASK | 022 | 上传文件的权限掩码 | | MAX_CLIENTS | 10 | 最大同时登录数 | | MAX_INSTANCES | 30 | 进程限制 | | PASV_ADDRESS | | 必填——Docker引擎的地址 | | PASV_MAX_PORT | 30100 | 客户端端口范围(修改需重建镜像) | | PASV_MIN_PORT | 30091 | | | SFTP_ENABLE | off | 使用SFTP而非FTP | | SFTP_PORT | 2222 | SFTP端口 | | TIMES_GMT | off | 目录列表使用本地时间 | | TZ | UTC | 本地时区 | | WRITE_ENABLE | AllowAll | 允许上传/删除操作 | ### 密钥 | 密钥 | 描述 | |--------------------------|------------------------------------| | ftp-user-password-secret | (可选)上传用户的加密密码 | ### 贡献 如果您想对此镜像进行改进,请参阅https://github.com/instantlinux/docker-tools/blob/main/CONTRIBUTING.md。 https://img.shields.io/badge/license-GPL--2.0-red.svg](https://choosealicense.com/licenses/gpl-2.0/ "License badge") https://img.shields.io/badge/code-proftpd%2Fproftpd-blue.svg](https://github.com/proftpd/proftpd "Code repo")
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务