Docker 部署 FastDFS
一、docker 拉取 FastDFS 镜像
docker pull season/fastdfs:1.2
二、运行Tracker
docker run -ti -d --name trakcer -v /opt/fastdfs/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs:1.2 tracker
三、运行 Storage
注意替换{ipaddress}
docker run -ti -d --name storage -v /opt/fastdfs/storage_data:/fastdfs/storage/data -v /opt/fastdfs/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:{ipaddress}:22122 season/fastdfs:1.2 storage
四、修改 FastDFS 配置文件
启动完Tracker 和 Storage 后 接下来修改 默认的配置文件
#首先将storage 容器里面的 /fdfs_conf/ 目录下所以配置文件使用docker cp 命令复制出来 docker cp storage:/fdfs_conf/. /usr/local/fastdfs/conf #编辑 tracker.conf 文件,将bind_addr字段的值替换成本机的IP vim tracker.conf bind_addr=${ipaddress} #编辑 storage.conf 文件,将tracker_server字段的值替换成本机的IP vim storage.conf tracker_server=${ipaddress}:22122 #编辑 client.conf 文件,将tracker_server字段的值替换成本机的IP vim client.conf tracker_server=${ipaddress}:22122 #将修改完的配置文件cp回镜像中 docker cp /usr/local/fastdfs/conf/. storage:/fdfs_conf #重启storage服务 docker restart storage
五、配置 nginx & ngx_fastdfs_module
- 创建一个 nginx.conf 文件 复制下面配置
server { listen 80; server_name cq.lizihao.ltd; location /lzh/data { alias /usr/share/nginx/html/Data; } location /ljf/CheshireMusic { try_files $uri $uri/ @router; index index.html index.htm; alias /usr/share/nginx/html/jinfa/CheshireMusic; } location = /50x.html { root html; } location /group1/M00 { #root /fastdfs/store_path/data; ngx_fastdfs_module; } }
- 编辑 之前 cp 出的 mod_fastdfs.conf 文件
#添加这行配置 url_have_group_name=true #在40行处 修改 tracker_server的IP地址
六、启动 Nginx
当中参数 -v 由于我本身nginx 部署有应用 所以要加入其它的数据卷
docker run -id --name fastdfs_nginx --restart=always -v /opt/fastdfs/store_path:/fastdfs/store_path -v /root/nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf -v /root/fastdfs/conf/mod_fastdfs.conf:/etc/fdfs/mod_fastdfs.conf -v /root/nginx/logs:/var/log/nginx -v /root/nginx/html:/usr/share/nginx/html -p 8888:80 -e GROUP_NAME=group1 -e TRACKER_SERVER=81.71.103.97:22122 -e STORAGE_SERVER_PORT=23000 season/fastdfs:1.2 nginx
七、配置或者关闭防火墙
配置防火墙
firewall-cmd --zone=public --add-port=22122/tcp --permanent firewall-cmd --zone=public --add-port=8888/tcp --permanent firewall-cmd --zone=public --add-port=23000/tcp --permanent firewall-cmd --reload
或者 关闭防火墙
systemctl stop firewalld.service