1. 拉镜像
docker search fastdfs;
morunchang/fastdfs 用于存储照片
docker pull morunchang/fastdfs;
2. Tracker 设置
运行 tracker
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
进入 tracker
docker exec -it tracker /bin/bash
两个端口号: 8821
22122
三个文件:
- /etc/nginx/conf/nginx.conf
- /etc/fdfs/client.conf
- /etc/fdfs/tracker.conf
修改
/etc/nginx/conf/nginx.conf
vim /etc/nginx/conf/nginx.conf
修改
/etc/fdfs/client.conf
vim /etc/fdfs/client.conf
IP:22122
修改
/etc/fdfs/tracker.conf
vim /etc/fdfs/tracker.conf
修改nginx.conf 需要重启
cd /etc/nginx/sbin/
./nginx -s reload
如果出错
./nginx -c /etc/nginx/conf/nginx.conf
3. Storage 设置
运行 tracker
docker run -d --name storage --net=host -e TRACKER_IP=192.168.19.129:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
需要
查看
共享卷查看上传照片, 用下面的代码.
docker run -d --name storage --net=host -e TRACKER_IP=192.168.19.129:22122 -v /home/docker/fastdfs/storage/image:/data/fast_data -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
进入 storage
docker exec -it storage /bin/bash
用到三个端口号:
8822
23000
22122
三个文件:
- /etc/nginx/conf/nginx.conf
- /etc/fdfs/storage.conf
- /etc/fdfs/tracker.conf
修改
/etc/nginx/conf/nginx.conf
vim /etc/nginx/conf/nginx.conf
8822
添加以下内容
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http‐cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
修改
/etc/fdfs/client.conf
vim /etc/fdfs/client.conf
8822
修改
/etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf
8822
3.1 照片的存储路径
vim /etc/fdfs/storage.conf
照片就存储在
/data/fast_data
下
看这个路径, 再加上 Nginx 的配置文件, 关联后面的 URL 就明白了.
4. 打开防火墙
开放端口号
-
firewall-cmd --zone=public --add-port 8821/tcp --permanent;
-
firewall-cmd --zone=public --add-port 8822/tcp --permanent;
-
firewall-cmd --zone=public --add-port 22122/tcp --permanent;
-
firewall-cmd --zone=public --add-port 23000/tcp --permanent;
-
firewall-cmd --reload;
查看防火墙的开放端口号
firewall-cmd --zone=public --list-all;
5. 访问
http://192.168.19.129:8822/
上传完照片后的访问路径大概像下面一样:
http://IP地址:端口号/Storage组/上传到Storage后存储照片的相对路径名
测试
执行命令,进入 tracker 容器中:
docker exec -it tracker bash
随便创建一个 txt 文件:
echo "niceyoo" > niceyoo.txt
然后通过 fdfs_upload_file 命令将 niceyoo.txt 文件上传至服务器:
fdfs_upload_file /etc/fdfs/client.conf niceyoo.txt
可在storage服务器查看
http://119.91.71.164:8822/group1/M00/00/00/CgAIAmE3K6iAFRB-AAAACBfWGpM788.txt
6. 防止缓存
防止用户删除照片后再次出现.
docker exec -it storage /bin/bash
vim /etc/nginx/conf/nginx.conf
添加内容
add_header Cache-Control no-store;
exit
docker restart storage