1、首先下载fastdfs镜像
docker pull delron/fastdfs
2、使用docker镜像构建tracker容器(跟踪服务器,起到调度的作用),这里tracker服务将会自动映射到宿主机上
注意:docker 的 -v 参数,可以自动挂载宿主机的文件件到容器中去,这样宿主和容器就可以进行无障碍的文件共享,我们通过-v参数,把宿主机的root目录自动挂载到docker容器中的/var/root目录中去
docker run -d --network=host --name tracker -v /root:/var/root delron/fastdfs tracker
3、docker镜像构建storage容器(存储服务器,提供容量和备份服务),这里storage容器需要依赖tracker服务,传入你的tracker服务的ip地址,端口默认是22122,ip地址也就是你宿主机的ip
docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.99.100:22122 -v /root:/var/root -e GROUP_NAME=group1 delron/fastdfs storage
注意:上面ip为docker的ip
此时,命令行输入 docker 就可以看到两套服务都已经启动。
docker进程查看然后分别进入宿主的命令行以及进入容器storage的命令行,发现文件夹已经共享
文件夹已共享进入正在后台运行的storage容器
docker exec -it storage /bin/bash
下面来个例子(我们可以利用docker的exec命令不进入容器,直接在宿主机的环境下调用容器内的命令,因为文件夹已经共享,所以我们输入的文件目录虽然是容器中的/var/root目录,但是实际上该上传的文件就在宿主的/root目录中)
docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4
上传成功后,fastdfs将会返回视频的网络地址
返回图片地址浏览器访问一下,没有问题
正常访问如果访问不到的话,排查防火墙8888端口是否开启,fastfds默认访问端口为8888。
网友评论