您的位置:首页 > 运维架构 > Docker

使用docker-compose部署go-fastdfs

2020-04-22 09:45 831 查看

1、环境

  • 操作系统:Centos 7
  • docker版本:19.03.7
  • docker-compose版本:1.24.0

2、拉取官方镜像

# go-fastdfs
$ docker pull sjqzhang/go-fastdfs

3、docker-compose.yml 配置文件

version: "3.7"

services:
fastdfs:
image: sjqzhang/go-fastdfs:latest
container_name: fastdfs
privileged: true
restart: always
ports:
- "8080:8080"
environment:
GO_FASTDFS_DIR: /usr/local/go-fastdfs/data
volumes:
- "fastdfs_data:/usr/local/go-fastdfs/data"
networks:
- backend

volumes:
fastdfs_data:

networks:
backend:
ipam:
config:
- subnet: 192.168.10.0/24

说明:
1、挂卷一开始是按照go-fastdfs使用文档中docker的启动方式,挂载到/data目录下,GO_FASTDFS_DIR环境变量也设置为/data,但是这样挂载,发现每次重启服务,都会新创建一个匿名卷,百思不得其解。后来看到源码中的Dockerfile,发现go-fastdfs镜像的挂载点是:/usr/local/go-fastdfs/data,于是更改挂卷到 /usr/local/go-fastdfs/data 目录下,重复创建匿名卷的问题解决。
2、go-fastdfs使用文档提到,认证会用到peer IP,所以最好用–network=host 不支持nat,bridge模式。本文目前没用到认证功能,用bridge模式,一切正常,而且官方的docker compose文件中,用的也是bridge的模式。

4、后台运行go-fastdfs服务

$ docker-compose up -d

5、浏览器上传下载测试

5.1 上传

5.2 上传成功返回的内容

5.3 下载

根据返回结果中的url即可下载对应文件

http://192.168.3.233:8080/group1/default/20200415/00/18/0/go-fastdfs_test.txt

6、安装go-fastdfs-web管理平台

go-fastdfs自带的web管理平台比较简陋,官方也推荐了一个功能更强大,页面更美观的管理平台 go-fastdfs-web,本文使用带jre环境的windows版本,下载解压压缩包后,直接运行

start.bat
,然后用浏览器打开 http://localhost:8088 进行安装即可。

注意:安装go-fastdfs-web之前,需要先把go-fastdfs-web所在主机的ip添加到go-fastdfs配置文件
cfg.json
的管理ip白名单列表中:

# 查看 docker volume
$ docker volume ls
DRIVER              VOLUME NAME
local               datastore_fastdfs_data

# 查看 datastore_fastdfs_data 卷的挂载点
$ docker inspect datastore_fastdfs_data | grep Mountpoint
"Mountpoint": "/var/lib/docker/volumes/datastore_fastdfs_data/_data",

# 编辑 cfg.json 配置文件
sudo vim /var/lib/docker/volumes/datastore_fastdfs_data/_data/conf/cfg.json
......
"管理ip列表": "用于管理集的ip白名单,",
"admin_ips": ["127.0.0.1", "192.168.3.232"],
......

参考链接

go-fastdfs使用文档
源码
go-fastdfs 分布式文件系统搭建

  • 点赞
  • 收藏
  • 分享
  • 文章举报
King Two 发布了6 篇原创文章 · 获赞 0 · 访问量 244 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: