webdevops/vsftpVSFTP Docker镜像是一个基于VSFTP(Very Secure FTP)构建的轻量级容器,用于快速部署安全、稳定的FTP服务。该镜像由WebDevOps构建并测试,集成了VSFTP的核心功能与Docker容器的便捷性,支持灵活配置与环境隔离,适用于各类文件传输场景。
从Docker Hub或WebDevOps官方仓库拉取镜像:
bashdocker pull webdevops/vsftp:latest
docker run命令)以下示例创建一个基础FTP服务,包含本地用户认证、数据持久化及被动模式配置:
bashdocker run -d \ --name vsftp-service \ -p 21:21 \ -p 21100-21110:21100-21110 \ # 被动模式端口范围(需与环境变量对应) -v /host/path/ftp-data:/ftp \ # 挂载主机目录作为FTP数据存储 -e FTP_USER=ftpuser \ # 本地FTP用户名 -e FTP_PASS=ftppassword \ # 本地FTP用户密码 -e PASV_ENABLE=YES \ # 启用被动模式 -e PASV_MIN_PORT=21100 \ # 被动模式最小端口 -e PASV_MAX_PORT=21110 \ # 被动模式最大端口 -e ALLOW_ANONYMOUS=NO \ # 禁用***访问 webdevops/vsftp:latest
使用docker-compose.yml编排服务(适用于多容器环境或持久化配置):
yamlversion: '3.8' services: vsftp: image: webdevops/vsftp:latest container_name: vsftp-service restart: always ports: - "21:21" # FTP控制端口 - "21100-21110:21100-21110" # 被动模式端口范围 volumes: - ./ftp-data:/ftp # 本地数据卷,持久化FTP文件 - ./vsftp.conf:/etc/vsftpd/vsftpd.conf # 自定义配置文件(可选) environment: - FTP_USER=devteam # 创建本地用户(devteam) - FTP_PASS=SecurePass123! # 用户密码 - ALLOW_ANONYMOUS=NO # 禁止***访问 - PASV_ENABLE=YES # 启用被动模式 - PASV_ADDRESS=192.168.1.100 # 被动模式返回的主机IP(公网/局域网IP) - PASV_MIN_PORT=21100 # 被动模式端口范围起始 - PASV_MAX_PORT=21110 # 被动模式端口范围结束 - LOG_LEVEL=INFO # 日志级别(DEBUG/INFO/WARNING/ERROR)
启动服务:
bashdocker-compose up -d
通过环境变量可动态调整FTP服务行为,常用参数如下表:
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
FTP_USER | 本地FTP用户名(若为空则不创建用户) | 无 | ftpuser |
FTP_PASS | 本地FTP用户密码(与FTP_USER配套) | 无 | SecurePass123! |
ALLOW_ANONYMOUS | 是否允许***访问(YES/NO) | NO | YES |
ANONYMOUS_ROOT | ***用户根目录(ALLOW_ANONYMOUS=YES时生效) | /ftp/anonymous | /data/ftp |
PASV_ENABLE | 是否启用被动模式(YES/NO) | YES | NO |
PASV_ADDRESS | 被动模式返回的主机IP(客户端用于数据连接) | 容器IP | 192.168.1.100 |
PASV_MIN_PORT | 被动模式最小端口(需与宿主机端口映射对应) | 21100 | 30000 |
PASV_MAX_PORT | 被动模式最大端口(需与宿主机端口映射对应) | 21110 | 30010 |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARNING/ERROR) | INFO | DEBUG |
为避免容器重启后文件丢失,需将FTP数据目录挂载至宿主机:
/ftp(本地用户的根目录为/ftp/<username>,***用户为/ftp/anonymous)。-v /host/ftp-data:/ftp(宿主机/host/ftp-data目录与容器/ftp绑定)。21100-21110),并在防火墙规则中允许这些端口的入站连接。ALLOW_ANONYMOUS=NO),或限制***用户仅可读(需额外配置anon_upload_enable=NO)。/etc/vsftpd/ssl/cert.pem和/etc/vsftpd/ssl/key.pem),并通过环境变量启用SSL_ENABLE=YES。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务