使用Docker部署FastDFS需先创建自定义bridge网络fastdfs-net,再依次启动tracker(映射22122端口)和storage(通过-e TRACKER_SERVER=tracker:22122关联并映射8888端口),最后验证注册状态及上传下载功能。

使用 Docker 部署 FastDFS 并不复杂,但需注意 tracker 和 storage 服务的网络互通、配置一致性以及卷挂载持久化。官方未提供标准镜像,推荐使用社区维护较活跃的 morunchang/fastdfs 或 delron/fastdfs 镜像,本文以 delron/fastdfs(基于 Ubuntu + FastDFS 6.06)为例说明核心步骤。
准备基础镜像与网络环境
FastDFS 由 tracker(调度)和 storage(存储)两类服务组成,建议用 Docker 自定义 bridge 网络确保容器间 DNS 可解析:
- 创建专用网络:
docker network create fastdfs-net - 拉取镜像:
docker pull delron/fastdfs(支持 x86_64,ARM 用户需自行构建或找适配镜像) - tracker 容器默认监听 22122 端口,storage 默认监听 23000,均需映射到宿主机或开放给同网络容器
启动 tracker 服务
tracker 是中心节点,负责负载均衡和 storage 注册管理。启动时需指定工作目录并暴露端口:
- 运行命令示例:
docker run -d --name tracker --network=fastdfs-net -v /opt/fastdfs/tracker:/var/fdfs -p 22122:22122 -t delron/fastdfs tracker -
/opt/fastdfs/tracker是宿主机持久化路径,保存日志、数据及tracker.conf(首次启动后会自动生成) - 确认运行:
docker logs tracker查看是否输出server started
启动 storage 服务并关联 tracker
storage 必须知道 tracker 地址才能注册。Docker 中通过 --network 共享网络后,可用容器名直接通信:
- 运行命令示例:
docker run -d --name storage --network=fastdfs-net -v /opt/fastdfs/storage:/var/fdfs -e TRACKER_SERVER=tracker:22122 -p 8888:8888 -t delron/fastdfs storage -
-e TRACKER_SERVER=tracker:22122是关键,告诉 storage 去fastdfs-net网络中找名为tracker的容器 -
-p 8888:8888映射 storage 的 HTTP 服务端口(用于文件下载),需确保storage.conf中http.server_port=8888 - storage 启动后约 3–5 秒内自动向 tracker 注册,可通过
docker exec -it tracker fdfs_monitor /etc/fdfs/storage.conf查看状态是否为ACTIVE
验证与简单上传测试
部署完成后,用 FastDFS 客户端工具或 API 测试上传功能:
- 进入任意容器(如 tracker)安装客户端:
apt update && apt install -y fdfs-tools - 修改
/etc/fdfs/client.conf,设置tracker_server=tracker:22122 - 执行上传:
fdfs_upload_file /etc/fdfs/client.conf /path/to/test.jpg,成功返回类似group1/M00/00/00/rBABCmLZ...jpg - 在浏览器访问
http://宿主机IP:8888/group1/M00/00/00/rBABCmLZ...jpg即可查看图片
实际生产中建议用 Nginx 做 storage 的前置代理(处理静态文件缓存、防盗链),并配置多台 storage 实现组内冗余。tracker 也可集群部署,但需额外配置同步机制。单机测试场景下,以上四步已满足基本分布式文件存储需求。

















