https://hub.docker.com/r/weyu/fastdfs
docker run -d --name fastdfs \
-p 80:80 \
-v /docker/fastdfs/fdfs:/fdfs \
-v /docker/fastdfs/etc/fdfs:/etc/fdfs \
-v /docker/fastdfs/nginx/conf:/nginx/conf \
-v $/docker/fastdfs/nginx/lua:/nginx/lua \
-v /docker/fastdfs/nginx/ssl:/nginx/ssl \
-v /docker/fastdfs/nginx/logs:/nginx/logs \
-v /docker/fastdfs/php/etc:/php/etc \
-v /docker/fastdfs/home/www/web:/home/www/web \
weyu/fastdfs
mkdir -p /root/fastdfs/{tracker,storage}
docker run -d --name tracker --net=host -v /root/fastdfs/tracker:/export/fastdfs/tracker -e TRACKER_BASE_PATH=/export/fastdfs/tracker -e TRACKER_PORT=22122 http://docker.io/morunchang/fastdfs sh tracker.sh
docker run -d --name storage --net=host -e TRACKER_IP=10.10.10.22:22122 -v /root/fastdfs/storage/data:/data/fast_data/data -e HTTP_SERVER_PORT=8310 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
docker update --restart=always tracker storage
进入容器,按自己实际修改配置文件
docker exec -it tracker bash
vi /etc/fdfs/client.conf
vi /etc/fdfs/tracker.conf
docker exec -it storage bash
vi /etc/fdfs/client.conf
vi /etc/fdfs/storage.conf
配置前置nginx
vi /etc/nginx/conf/nginx.conf
server {
listen 8310;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ /M00 {
root /data/fast_data/data;
ngx_fastdfs_module;
if ($arg_attname ~ "^(.*).tar.gz") {
add_header Content-Disposition "attachment;filename=$arg_attname";
}
add_header X-Cache-Status $upstream_cache_status;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}重启服务
docker restart tracker storage
# 简介
FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。