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