Docker部署FastDFS-nginx
目录
查询FastDFS镜像文件
通过docker search 命令去仓库中查找镜像文件
docker searchr fastdfs
我们选取 名为delron/fastdfs的镜像,该镜像默认的为我们安装了nginx。
拉取镜像并查看镜像
#拉取镜像
docker pull delron/fastdfs
#查看镜像
docker images
通过docker network 创建网络
Docker容器每次重启后容器ip会发生变动,这意味着如果容器间使用ip地址进行通信的话,一旦容器重启,重启后的容器将不能再被访问到。
Docker网络主要有以下两个功能:
- 容器间的互联和通信以及端口映射
- 容器IP变动的时候可以通过服务名直接网络连接通信而不受影响
#创建网络
docker network create mynet
#查看网络
docker network ls
通过Docker命令创建Tracker服务
#创建要挂载的容器卷
mkdir /fastdfs/tracker01
#执行docker命令
docker run -d --name tracker01 --network=mynet -p 22122:22122 -v /fastdfs/tracker01:/var/fdfs delron/fastdfs tracker01
#查看容器是否创建成功
docker ps
–network=mynet指定网络
-p 22122:22122 指定暴露的端口
-v /fastdfs/tracker01:/var/fdfs 挂载的容器卷
通过Docker命令创建Storage服务
#创建要挂载的容器卷
mkdir /fastdfs/storage01
#执行docker命令
docker run -d --name storage01 --network=mynet -p 23000:23000 -p 8888:8888 -e TRACKER_SERVER=tracker01:22122 -v /fastdfs/storage01:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage01
#查看容器是否创建成功
docker ps
默认服务端口
tracker 22122
storage 23000
nginx 8888
-e TRACKER_SERVER=tracker01:22122 指定tracker的ip地址和端口
-e GROUP_NAME=group1 指定分组名称
进入storage容器查看相关配置
#进入容器
docker exec -it storage01 /bin/bash
#查看相关的配置文件
cd /etc/fdfs
通过查看相关的配置文件,确保对应的IP、端口和存储路径正确
#查看tracker和storage
fdfs_monitor /etc/fdfs/client.conf
如果没有相对应的tracker和storage,则需要手动启动。
#启动tracker命令
fdfs_trackerd /etc/fdfs/tracker.conf start
#启动storage
fdfs_trackerd /etc/fdfs/storage.conf start
测试文件上传
首先在虚拟机/fastdfs/storage01放入一张图片或任意文件
进入storage容器的/var/fdfs目录找到图片执行上传命令
#进入容器
docker exec -it storage01 /bin/bash
#进入目录
cd /var/fdfs
#进行文件上传
fdfs_upload_file /etc/fdfs/client.conf 2023_07_17_10_32_07_746.jpg
在上传的过程中可能会出现一下错误:
出现这种错误可能的原因是storage服务不在线,或者是挂载的目录是之前storage容器挂载的目录。这时候需要使用fdfs_monitor /etc/fdfs/client.conf命令查看storage是否在线,不在线则需要进行启动。如果是文件夹问题,则需要清除文件夹重新安装。
测试nginx
在浏览器中输入地址进行访问:
http://192.168.80.131:8888/group1/M00/00/00/rBQAA2TFHaCAXfVCAAA7CzLz9Js461.jpg
若出现无法访问的问题,则需要进入容器查看nginx服务是否启动。
#查看当前的服务
ps axu
发现容器中的nginx并未启动,这就需要我们手动的启动nginx服务。
#j进入nginx的安装目录
cd /usr/local/nginx/sbin/
#运行nginx
./nginx
#查看服务是否启动
ps aux
在次通过浏览器进行测试,若是出现以下问题,则需要查看nginx日志文件
从日志中可以看出路径下的文件不存在,但此路径不是我们存储文件的路径,这就需要我们去/ect/fdfs目录下修mod_fastdfs.conf配置文件。
在修改完成之后记得重新加载一个nginx。
#进入nginx安装目录
cd /usr/local/nginx/sbin/
#重新加载
./nginx -s reload
再次在浏览器中输入地址进行测试,发现可以通过nginx直接访问上传的图片了。
好了,这些就是我在使用docker部署FastDFS和nginx的实现过程,以及部署过程中可能会遇到的问题。