首页 > 其他分享 >FastDFS基于Docker安装

FastDFS基于Docker安装

时间:2023-11-06 10:34:58浏览次数:38  
标签:-- FastDFS storage tcp tracker Docker fdfs 安装 docker

FastDFS基于Docker安装

可参考

docker pull delron/fastdfs
构建Tracker容器

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

docker run -d --network=host --name tracker -v /data/fdfs:/var/fdfs delron/fastdfs tracker
docker run -d --network=host --name tracker -v /data/phb/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 /data/phb/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=1.15.71.144:22122 -v /data/phb/develop/temp/storage:/var/fdfs  -e GROUP_NAME=group1 delron/fastdfs storage

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

docker run -d --name storage -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=1.15.71.144:22122 -v /data/phb/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的安装和配置,下面我们来放一张图片验证一下。

首先,将一张图片放在本机挂载目录/data/phb/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接口。

firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

查看某端口的状态

netstat -ntulp |grep 80
firewall-cmd --query-port=80/tcp
firewall-cmd --list-ports

标签:--,FastDFS,storage,tcp,tracker,Docker,fdfs,安装,docker
From: https://blog.51cto.com/u_16339651/8202031

相关文章

  • win bat 脚本 - 使用vbs实现 带参数 创建桌面快捷方式 - chrome多版本安装为例子
    官网下载win安装包,地址https://www.chromedownloads.net/chrome64win-canary/解压win安装chrome文件,得到这个文件夹 bat脚本放在同一个目录下安装脚本如下【可用的哦,这是带参数的】@echooff::快捷方式名称set"name=chrome快捷桌面启动入口"setroot=%~dp0se......
  • Macbook安装MacPorts
    一、下载官方安装包下载地址:https://www.macports.org/install.php选择合适的版本下载。  二、断开网络(准备安装,不然会卡)a、正常断开网络,安装下载的安装包。b、如果忘了断网,那么需要强制退出如果步骤一没断网成功会导致安装卡住,如果卡住了,需要强制退出软件首先使用optio......
  • Python 安装的步骤
    windows电脑安装python1版本选择2.x版本将慢慢退出历史的舞台,建议你从3.x开始学习,本教程所使用的python版本是3.62下载安装包进入官网下载页面 https://www.python.org/downloads/windows/找到合适的安装包本教程所提供的示例代码适用于3.0以上的版本,如果你喜欢更高的版......
  • centos7 中 安装 rmblast 软件
     静态二进制(免安装) 001、系统(base)[root@pc1software]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)##centos7.6 002、下载安装包(最新版是2.14.1,但是centos7.6不能使用该版本,因为GLIBC库版本过低等因素;经过测试,只能调用2.14.0版本)......
  • Docker-compose 运行MySQL 连接不上
    Docker-compose运行MySQL连接不上......
  • Docker的常用命令
    Docker的常用命令包括:启动Docker服务:systemctlstartdocker查看docker状态:systemctlstatusdocker停止docker服务:systemctlstopdocker重启docker服务:systemctlrestartdocker开机启动docker:systemctlenabledocker查看镜像:dockerimages搜索镜像:dockersearch搜索......
  • docker容器内需要执行sudo hwclock --systohc吗
     在Docker容器内部,你通常不需要(也不应该)执行与硬件时钟相关的操作。这有几个原因:1.**隔离性**:Docker容器设计为与宿主机隔离。容器不会(也不应该)直接与硬件交互,包括硬件时钟。2.**依赖宿主机**:容器通常会从宿主机继承时间。如果宿主机的时间设置正确,那么容器的时间也应该是正确......
  • Linux脚本:批量启动docker容器、批量启动springboot、批量启动Vuejs
    批量启动springboot#!/bin/bash#检查容器是否已经启动check_container(){sudodockerps|grep"$1">/dev/nullif[$?-ne0];thenecho"$1containerisnotrunning.Starting$1..."sudodockerstart"$1"elseecho......
  • es - 安装Head/Kibana插件
    1.7安装Head插件Head是elasticsearch的集群管理工具,可以用于数据的浏览和查询(1)elasticsearch-head是一款开源软件,被托管在github上面,所以如果我们要使用它,必须先安装git,通过git获取elasticsearch-head(2)运行elasticsearch-head会用到grunt,而grunt需要npm包管理器,所以nodejs是必......
  • Vscode 安装pyside6
    1.在VScode扩展中安装pyqtintegration2.pyqtintegration设置pyrcc;pyuic;Qtdesigner的路径 ......