部署前说明

一、首先要确认已经安装完成了Docker,如果没有安装可以参考我之前的文章进行安装 快速跳转

二、确认一下面的端口当前服务器内没有被占用,如果存在占用可以后面修改配置文件避开占用的端口

  • 22122
  • 23000
  • 8888

确认没有问题后就可以进行部署了,这里有单台和多台的部署方式,可以按需求进行部署

单台部署

首先创建持久化目录

#先创建tracker的持久化目录
mkdir -p /data/fastdfs/tracker
#创建storage的持久化目录
mkdir -p /data/fastdfs/storage/{data,path}

拉取镜像

docker pull delron/fastdfs

拉取完成后先启动tracker

docker run -d --name tracker --network=host -v /data/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
  • 因为这里使用了host,所以不用做端口映射,默认端口为22122

接着启动storage

docker run -d --name storage --network=host  -e TRACKER_SERVER=172.18.66.210:22122 -v /data/fastdfs/storage/data:/var/fdfs  -e GROUP_NAME=group1 delron/fastdfs storage
  • 环境变量TRACKER_SERVER为tracker的地址+端口,多台tracker情况下不要添加这个环境变量

启动成功后可以试试上传文件

#先拷贝文件到持久目录,假设我有个图片1.jpg在/opt下
cp /opt/1.jpg /data/fastdfs/storage/data
#接着进入容器
docker exec -it storage bash
#切换目录到文件所在位置
cd /var/fdfs
#通过命令上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg 

通过IP地址+端口以及返回的字符串,就可以访问到图片了

到这里,单台的FastDFS就部署完成了

多台部署

如果需要多台部署到情况下,tracker地址要配置成多个,首先还是先创建目录

#先创建tracker的持久化目录
mkdir -p /data/fastdfs/tracker
#创建storage的持久化目录
mkdir -p /data/fastdfs/storage/{data,path}

拉取镜像

docker pull delron/fastdfs

拉取完成后先启动tracker,多台情况下tracker都要先启动,不然后面storage无法注册

docker run -d --name tracker --network=host -v /data/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
  • 因为这里使用了host,所以不用做端口映射,默认端口为22122

接着启动storage

 docker run -d --name storage --network=host  -v /data/fastdfs/storage/data:/var/fdfs  -e GROUP_NAME=group1 delron/fastdfs storage
  • 因为有多台tracker,所以不要添加TRACKER_SERVER的环境变量,会覆盖配置文件中的地址,需要容器启动后手动配置

启动完成后进入容器配置tracker地址

#进入容器
docker exec -it storage /bin/bash
#切换目录
cd /etc/fdfs
#先修改storage(容器中没有vim)
vi storage.conf

要填写正确IP不能写127.0.0.1,修改完成后修改client.conf文件

vi client.conf

修改完成后退出容器,重启storage容器,让storage重新注册

docker restart storage

重启完成后可以进入容易查看一下

docker exec -it storage /bin/bash

使用命令查看

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

返回的信息中有2条Storage代表成功

其他storage使用同样方法启动后,多台FastDFS就部署完成了