FastDFS基于Docker安装,免踩坑版

简介: FastDFS基于Docker安装,免踩坑版

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

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

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

Docker安装FastDFS

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

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











bogon:~ zzs$ docker search fastdfsNAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDseason/fastdfs                 FastDFS                                         66luhuiguo/fastdfs               FastDFS is an open source high performance d…   25                                      [OK]ygqygq2/fastdfs-nginx          整合了nginx的fastdfs                                20                                      [OK]morunchang/fastdfs             A FastDFS image                                 19delron/fastdfs                                                                 12moocu/fastdfs                  fastdfs5.11                                     9qbanxiaoli/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 psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                     NAMES15bfca8b94eb        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接口。

展示效果如下:image.png

目录
相关文章
|
4天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
115 78
|
18天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
147 64
|
7天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
45 14
|
4天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
30 7
|
19天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
93 24
|
20天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
83 24
|
19天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
266 11
|
2月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1986 3
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
2月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
1239 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
3月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
717 2
Docker安装Mysql5.7,解决无法访问DockerHub问题

热门文章

最新文章