关于java:FastDFS基于Docker安装免采坑版

37次阅读

共计 3691 个字符,预计需要花费 10 分钟才能阅读完成。

暂且不说 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

构建 Tracker 容器

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

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

下面的启动命令是在 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

默认 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

替换 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

其中 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

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

先进入 storage,查看其对应配置文件中对于 http 拜访的配置,配置文件在 /etc/fdfs 目录下的 storage.conf。在最初一行能够看到如下配置:

# the port of the web server on this storage server
http.server_port=8888

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

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

/usr/local/nginx/conf/

能够对其下的 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

其中 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 接口。

展现成果如下:

下一步能够扫描一下图片,关注一下我的公众号【程序新视界】,继续更新干货内容,总有你想要的。

下一篇文章,咱们将介绍如何通过 Spring Boot 来集成 FastDFS,也是对于 FastDFS 的最初一篇文章。

<center> 程序新视界 :精彩和成长都不容错过 </center>

正文完
 0