第二节 docker搭建FastDFS文件系统

亮子 2021-07-21 04:32:48 18653 0 0 0

1、拉取镜像

docker pull delron/fastdfs

2、使用docker镜像构建tracker容器

跟踪服务器,起到调度的作用

docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

3、使用docker镜像构建storage容器

存储服务器,提供容量和备份服务

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
  • 说明1
    x.x.x.x这里要说明一下:这个地址必须使用服务器的的 内网地址 ,否则上传的时候连不上服务器。
  • 说明2
    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文件--------------------------

4、修改配置文件

进入到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

5、修改文件访问端口

进入storage容器,到storage的配置文件中配置http访问的端口,配置文件在/etc/fdfs目录下的storage.conf。

#进入容器
docker exec -it storage bash
#进入目录
cd /etc/fdfs/
#编辑文件
vi storage.conf

图片alt

默认端口是8888,也可以不进行更改。

6、修改完重启容器,没有修改就不需要重启

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

7、测试

进入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

图片alt

浏览器访问 http://ip:8888/group1/M00/00/00/wKgcgF-_Le6AS4LvAAAATzab9Do068.txt 端口根据你在starage里面设置的要保持一致,访问之前关闭防火墙 或者自己单独开放端口命令如下:

图片alt

8、开放端口

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三个端口

9、开启启动容器

docker update --restart=always tracker

docker update --restart=always storage

参考文档