Docker:一行命令搭建带容量限制的FTP服务器
·
Docker:一行命令搭建带容量限制的FTP服务器
目标
使用 Docker 快速搭建一个 vsftpd 服务,并将其存储目录 /root/ftp/ 的总容量精确限制为 500MB。
核心思路
不直接使用主机目录,而是在主机上创建一个 500MB 大小的文件作为“虚拟磁盘”。将此文件格式化并挂载到 /root/ftp/ 目录,然后将这个大小已经固定的目录供给 Docker 容器使用。
环境准备
- 已安装 Docker 的 Linux 服务器
- Root 或 Sudo 权限
第一步:创建并挂载主机的受限目录
1. 创建 500MB 的虚拟磁盘文件
truncate -s 500M /root/ftp-storage.img
提示:
500M可根据需求修改为2G、10G等。
2. 格式化文件为 ext4 文件系统
mkfs.ext4 /root/ftp-storage.img
遇到
(y,N)提示时,输入y并回车。
3. 创建挂载点目录
mkdir -p /root/ftp/
4. 挂载虚拟磁盘
mount -o loop /root/ftp-storage.img /root/ftp/
5. 验证目录大小
df -h /root/ftp/
输出应显示该目录总大小为 500MB 左右。
6. 设置开机自动挂载
echo '/root/ftp-storage.img /root/ftp/ ext4 loop 0 0' >> /etc/fstab
第二步:启动 Docker FTP 容器
1. 拉取镜像 (可选)
docker pull fauria/vsftpd
2. 运行容器
请将 YOUR_PUBLIC_IP 替换为您服务器的真实公网 IP 地址。
docker run -d --name my-ftp-server \
-p 21:21 \
-p 30000-30009:30000-30009 \
-v /root/ftp/:/home/vsftpd/lei \
-e FTP_USER=lei \
-e FTP_PASS=10086 \
-e PASV_MIN_PORT=30000 \
-e PASV_MAX_PORT=30009 \
-e PASV_ADDRESS=YOUR_PUBLIC_IP \
--restart always \
fauria/vsftpd
第三步:配置防火墙
1. 开放端口
# 开放FTP命令端口 21
firewall-cmd --permanent --add-port=21/tcp
# 开放被动模式数据端口范围
firewall-cmd --permanent --add-port=30000-30009/tcp
# 重新加载防火墙规则
firewall-cmd --reload
云服务器用户注意:还必须在云服务商控制台的安全组中,添加入站规则,放行
21和30000-30009这两个TCP端口。
第四步:连接与测试
使用任何 FTP 客户端(如 FileZilla、Windows 文件资源管理器)进行连接。
- 主机:
YOUR_PUBLIC_IP - 用户名:
lei - 密码:
10086 - 端口:
21 - 模式: 被动 (Passive) 模式
验证:尝试上传一个大于 500MB 的文件,上传将在达到容量上限时失败,证明配置成功。
更多推荐



所有评论(0)