暂且不说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 psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES2bc9f8268eda 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 storage15bfca8b94eb 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 serverhttp.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.jpggroup1/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>