简述
FastDFS是一个开源的轻量级分布式文件系统,它的主要功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
Github项目地址:https://github.com/happyfish100/fastdfs
架构图
架构图
安装步骤
- 我这里采用下载量最多的
season/fastdfs
镜像,版本随意
# 运行tracker跟踪服务,默认端口为22122,映射`/fastdfs/tracker /data`以保留数据
docker run -it -d --name tracker \
-v ~/usr/local/docker/tracker_data:/fastdfs/tracker/data \
--net=host season/fastdfs:1.2 tracker
# 运行storage存储服务,绑定tracker跟踪服务的ip与端口(此处并未生效,原因未知需手动修正)
docker run -it -d --name storage \
-v ~/usr/local/docker/storage_data:/fastdfs/storage/data \
-v ~/usr/local/docker/store_path:/fastdfs/store_path \
--net=host -e TRACKER_SERVER:你的trackerIP:22122 season/fastdfs:1.2 storage
演示图如下:
安装演示
手动修改storage绑定tracker的IP:
# 1.从容器复制配置文件到宿主机
docker cp storage:/fdfs_conf/storage.conf ~/
# 2.修改配置文件
vim ~/storage.conf → 找到tracker_server=你的tracker机ip:22122
# 3.将文件拷贝回docker容器
docker cp ~/storage.conf storage:/fdfs_conf/
# 4.重启存储服务
docker restart storage
# 5.进入storage容器
docker exec -it storage bash
# 6.查看storage的状态
cd fdfs_conf/ && fdfs_monitor storage.conf
修改前
修改后
测试上传功能
# 启用FastDFS客户端工具
docker run -itd --name fdfs_sh --net=host season/fastdfs:1.2 sh
# 替换storage配置文件
docker cp ~/storage.conf fdfs_sh:/fdfs_conf/
# 进入客户端容器
docker exec -it fdfs_sh bash
# 创建一个文件测试上传用
touch a.txt
# 进入配置文件夹 ,上传文件
cd fdfs_conf/ && fdfs_upload_file storage.conf /a.txt
上传测试
文件所在
后记
- 遇到端口被占用可以使用:
netstat -tunlp|grep 端口号
查看进程 - 一定要开放防火墙
-
season/fastdfs:latest
版本,其中不包含nginx,但不影响其他功能