docker安装fastDFS
基础环境
Linux centOS 7.X
拉取镜像
docker pull delron/fastdfs:latest
创建Tracker容器(默认22122端口)
docker run -d --network=host --name tracker --restart=always -v /home/dockerfastdfs/tracker:/var/fdfs delron/fastdfs tracker
创建Storage容器(注意修改TRACKER_SERVER=192.168.0.1:22122为自己的IP)
docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.0.1:22122 --restart=always -v /home/dockerfastdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
storage容器的配置文件所在目录
容器内:
/etc/fdfs
storage容器内置的nginx配置文件所在目录
容器内:
/usr/local/nginx/conf
进入容器的命令
docker exec -it 容器Id或名称 bash
如果访问不了可能是防火墙的原因
开放端口:
- 内置的nginx对应的端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
- tracker容器对应的端口22122
firewall-cmd --zone=public --add-port=22122/tcp --permanent
重启防火墙
firewall-cmd --reload
如果是云服务器(腾讯云/阿里云)
登录相应的云服务器管理后台,找到安全组设置要开放的端口。
ps:如果是外网,22122不需要开放端口,只开通8888端口预览文件即可。通过开发程序(我用的是java)上传文件。
测试是否安装成功
宿主机放入一个文件
可以使用xftp工具进行上传
/home/dockerfastdfs/storage
[root@iZ2ze94nfjep2pqrf3i496Z storage]# pwd
/home/dockerfastdfs/storage
[root@iZ2ze94nfjep2pqrf3i496Z storage]# ls
dog.jpg logs
- logs是fastDFS日志文件。
- dog.jpg是自己上传的测试文件。
进入Storage容器内
docker exec -it storage bash
容器内依次执行命令:
- cd /var/fdfs
- /usr/bin/fdfs_upload_file /etc/fdfs/client.conf dog.jpg
[root@iZ2ze94nfjep2pqrf3i496Z storage]# docker exec -it storage bash
[root@iZ2ze94nfjep2pqrf3i496Z nginx-1.12.2]#
[root@iZ2ze94nfjep2pqrf3i496Z nginx-1.12.2]# cd /var/fdfs
[root@iZ2ze94nfjep2pqrf3i496Z fdfs]#
[root@iZ2ze94nfjep2pqrf3i496Z fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf dog.jpg
group1/M00/00/00/rBHb22Gl4O6Abc3wAAC3Zb-v-8Q708.jpg
[root@iZ2ze94nfjep2pqrf3i496Z fdfs]#
[root@iZ2ze94nfjep2pqrf3i496Z fdfs]#
[root@iZ2ze94nfjep2pqrf3i496Z fdfs]#
预览文件
192.168.0.1:8888/group1/M00/00/00/rBHb22Gl4O6Abc3wAAC3Zb-v-8Q708.jpg