docker pull delron/fastdfs
跟踪服务器,起到调度的作用
docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
存储服务器,提供容量和备份服务
TRACKER_SERVER=本机的ip地址:22122 本机ip地址不要使用127.0.0.1
docker run -d --network=host --name storage -e TRACKER_SERVER=x.x.x.x:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
内网地址
,否则上传的时候连不上服务器。group1
这个不要随便修改,因为默认的nginx的配置中使用的是0到9的数字,如果想修改这个名字,得进入到storage容器中修改nginx的配置文件# 进入容器查看storage:
[root@VM-8-7-centos logs]# docker exec -it storage /bin/bash
#在/usr/local/nginx/conf目录下,修改nginx.conf文件
[root@VM-8-7-centos conf]# cd /usr/local/nginx/conf
--------------------------以下是nginx.conf文件--------------------------
server {
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
--------------------------以上是nginx.conf文件--------------------------
进入到tracker服务器,配置一下tracker_server的服务器地址。
#进入容器
docker exec -it tracker bash
vi /etc/fdfs/client.conf
将配置 tracker_server=x.x.x.x:22122
到这其实fastDFS就配好了
这里的x.x.x.x也建议设置为服务器的内网ip
。
进入storage容器,到storage的配置文件中配置http访问的端口,配置文件在/etc/fdfs目录下的storage.conf。
#进入容器
docker exec -it storage bash
#进入目录
cd /etc/fdfs/
#编辑文件
vi storage.conf
默认端口是8888,也可以不进行更改。
docker stop storage
docker start storage
一般情况两个服务器总有一个会起来不来,不要惊慌。可以使用如下命令查看:
docker logs storage
如果重启后无法启动的会,可能是报下面错误了,手动创建 vi /var/fdfs/logs/storaged.log 文件即可
tail: cannot open ‘/var/fdfs/logs/storaged.log’ for reading: No such file or directory
通过如下命令创建文件也是可以的:
touch /var/fdfs/logs/storaged.log
进入storage容器,进入/var/fdfs目录
docker exec -it storage bash
cd /var/fdfs
echo hello,world>a.txt
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.txt
浏览器访问 http://ip:8888/group1/M00/00/00/wKgcgF-_Le6AS4LvAAAATzab9Do068.txt
端口根据你在starage里面设置的要保持一致,访问之前关闭防火墙 或者自己单独开放端口命令如下:
firewall-cmd --zone=public --permanent --add-port=8888/tcp
firewall-cmd --zone=public --permanent --add-port=22122/tcp
firewall-cmd --zone=public --permanent --add-port=23000/tcp
# 重启防火墙
systemctl restart firewalld
如果是阿里云服务器,则需要修改安全组,放开8888、22122、23000三个端口
docker update --restart=always tracker
docker update --restart=always storage