FastDFS基于Docker安装

简介: FastDFS基于Docker安装

暂且不说Docker在生产环境的性能如何,单就在学习新技术的过程中能够快速构建环境这一项来说,就值得推荐你尝试使用。本文带大家基于Docker来安装FastDFS服务。


即便你对FastDFS的安装不感兴趣,也可以学习一下Docker安装软件的过程(基本通用),是提高学习效率的法宝之一。


如果想补习一下FastDFS的原理,请参考《文件管理系统FastDFS原理详解》,有助于下面内容的理解和学习。


Docker安装FastDFS

关于Docker的安装不同的操作系统有不同的安装方法,这里就不再赘述,默认你的电脑或服务器上已经安装好了Docker,并已启动。


我们来看一下Docker库里面已经存在了哪些镜像可供使用。执行以下命令(如果非管理员权限则可能需要使用sudo):


bogon:~ zzs$ docker search fastdfs
NAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
season/fastdfs                 FastDFS                                         66
luhuiguo/fastdfs               FastDFS is an open source high performance d…   25                                      [OK]
ygqygq2/fastdfs-nginx          整合了nginx的fastdfs                                20                                      [OK]
morunchang/fastdfs             A FastDFS image                                 19
delron/fastdfs                                                                 12
moocu/fastdfs                  fastdfs5.11                                     9
qbanxiaoli/fastdfs             FastDFS+FastDHT单机版                              8                                       [OK]
……

如果你是安装其他的软件,也可同样通过docker search命令来进行查找。


这里采用名字为delron/fastdfs的镜像,当然你也可以选择其他的镜像,配置会有所不同,有些镜像内没有Nginx相关配置。


那么,我们就把它pull下来吧。


docker pull delron/fastdfs

1

构建Tracker容器

使用docker镜像构建tracker容器,用于启动跟踪服务器,起到调度的作用。


docker run -d --network=host --name tracker -v /Users/zzs/develop/temp/tracker:/var/fdfs delron/fastdfs tracker

1

上面的启动命令是在Linux下,如果是Mac或Windows操作系统network=host(容器与主机享受相同的network namespace)会失效,此时需要指定对应的端口映射。本教程的Docker宿主机为Mac。


docker run -d --name tracker -p 22122:22122 -v /Users/zzs/develop/temp/tracker:/var/fdfs delron/fastdfs tracker

1

默认tracker是监听在22122端口的。


其中-v参数将本地的目录与容器中的/var/fdfs目录进行挂载。


这里可以看到tracker服务已经启动完成。


docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                     NAMES
15bfca8b94eb        delron/fastdfs      "/usr/bin/start1.sh …"   4 seconds ago       Up 3 seconds        8080/tcp, 8888/tcp, 23000/tcp, 0.0.0.0:22122->22122/tcp   tracker

构建Storage容器

使用docker镜像构建storage容器,用于启动存储服务器,提供容量和备份服务。


在执行下面命令时特别需要提醒的时,对应的IP地址,需要修改为tracker服务的IP地址,由于是在同一台电脑上操作,这里使用本机的内网地址即可,22122是tracker对应的端口。


示例,下面命令需要替换IP地址。


docker run -d --network=host --name storage -e TRACKER_SERVER=ip:22122 -v /Users/zzs/develop/temp/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

1

替换IP地址之后对应Mac下的的具体执行操作:


docker run -d --name storage -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=192.168.43.143:22122 -v /Users/zzs/develop/temp/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage


1

2

其中8888为Nginx对应的访问端口,23000是storage服务端口。


此时可查看docker的服务情况:


docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                   NAMES
2bc9f8268eda        delron/fastdfs      "/usr/bin/start1.sh …"   5 seconds ago       Up 4 seconds        8080/tcp, 0.0.0.0:8888->8888/tcp, 22122/tcp, 0.0.0.0:23000->23000/tcp   storage
15bfca8b94eb        delron/fastdfs      "/usr/bin/start1.sh …"   2 minutes ago       Up 2 minutes        8080/tcp, 8888/tcp, 23000/tcp, 0.0.0.0:22122->22122/tcp                 tracker

修改配置

经过上面的步骤,tracker和storage都启动完成。我们可以进入对应的docker容器查看一下默认的配置情况。


进入docker的命令为:


docker exec -it 2bc9f8268eda bash

1

其中参数值“2bc9f8268eda”为我们上面看到的要进入的容器的CONTAINER ID。


先进入storage,查看其对应配置文件中关于http访问的配置,配置文件在/etc/fdfs目录下的storage.conf。在最后一行可以看到如下配置:


# the port of the web server on this storage server

http.server_port=8888

1

2

也就是说,这个docker镜像中默认监听的是8888端口,当然此配置是需要修改的。如果修改为其他端口,对应的Nginx配置也需要修改。


那么Nginx配置在哪里呢?也在当前容器当中。Nginx配置文件的根目录为:


/usr/local/nginx/conf/

1

可以对其下的nginx.conf进行查看和修改。先来看一下默认配置:


server {
    listen       8888;
    server_name  localhost;
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root html;
    }
}

上面是关于server的配置,端口与storage的端口一一对应。如果需要修改时两个同步修改。


通过上面的操作你会发现默认FastDFS会需要开启8888、23000、22122端口,如果在Linux操作系统下,注意防火墙对对应端口的开放。


测试一下

经过上面的步骤已经完成了FastDFS的安装和配置,下面我们来放一张图片验证一下。


首先,将一张图片放在本机挂载目录/Users/zzs/develop/temp/storage下(上面命令中用到的目录)。


然后,进入storage容器,进入/var/fdfs目录,执行如下命令:


/usr/bin/fdfs_upload_file /etc/fdfs/client.conf weixin.jpg

1

其中wenxin.jpg是前面存放在本机storage目录下的图片的名称。


相关执行命令及目录:


[root@2bc9f8268eda fdfs]# pwd
/var/fdfs
[root@2bc9f8268eda fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf weixin.jpg
group1/M00/00/00/rBEAA18X7ZWAfAPiAABrsFVlX6U142.jpg

此时,文件已经上传成功,会返回在storage存储文件的路径信息。


通过url访问http://ip:8888/group1/M00/00/00/rBEAA18X7ZWAfAPiAABrsFVlX6U142.jpg,即可查看到图片。这里ip替换成localhost或127.0.0.1接口。


展示效果如下:


image.png

目录
相关文章
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
17天前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
113 3
docker 安装 Postgres 17.6
|
6月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
4月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
422 4
|
3月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
888 0
|
4月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
133 1
|
5月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
313 5