天天看点

Docker安装FastDFS

由于Host主机网络驱动程序仅适用于Linux主机,并且不支持Docker for Mac,所以提供在centos和mac的不同安装方法。

centos环境中,tracker和storage使用docker host网络,共享宿主机网络Network Namespace,使用宿主机的IP和端口而并不会虚拟出自己的网卡设备和配置自己的IP等。

TRACKER_SERVER=192.168.100.149:22122,TRACKER_SERVER为tracker服务地址。

TRACKER_SERVER勿配置为127.0.0.1或localhost。

配置TRACKER_SERVER的目的是让storage能找到tracker服务,不论是bridge还是host网络模式,都要使得TRACKER_SERVER配置的地址能找到tracker服务。

这里通过host网络,可通过宿主机+22122端口映射到容器中的tracker服务。(下文Mac通过bridge网络变通下目的也是网络能通且能找到tracker server。

将tracker server中的/etc/fdfs/storage.conf文件中的tracker_server配置为能找到tracker server服务的地址:

8888为默认端口

delron/fastdfs 镜像包含了nginx服务。

storage 容器的 nginx代理了storage 的http服务,目的是方便web浏览器通过nginx服务访问到storage存储的资源。

如果上面storage.conf的http.server_port端口更改过,这里nginx代理监听的服务端口要保持一致。

在tracker或storage中通过 fdfs_monitor /etc/fdfs/storage.conf 检查配置是否正确。

tracker server is 192.168.100.149:22122说明配置正确,同时也可以通过telnet看看服务是否都能找得到。

在storage容器中使用fdfs_upload_file尝试上传指定文件,如果正确返回存储路径,则测试通过。

group1/M00/00/00/rBEABmFkSvCAKThKAAAATzab9Do079.txt为返回的文件存储路径。部署完成。

macOS并不支持docker host网络,这里依然使用bridge。

为了将tracker容器中的storage.conf持久化在宿主机,这里调整了映射目录。

默认network为bridge,并且指定端口映射-p 22122:22122。

这里我事先启动了一个正常的tracker实例,把其容器中的/etc/fdfs目录中的所有配置拷贝到了宿主机,然后修改了storage.conf中的tracker_server=192.168.100.149:22122,这样就不用担心容器重启后又得进到tracker容器中重新修改该配置。

默认network为bridge,并且指定nginx和storage的端口映射分别为-p 8888:8888 -p 23000:23000。

这里配置bridge端口映射的目的依然是让服务彼此能找到TRACKER_SERVER,保证TRACKER_SERVER能通。

其他内容和在Centos中配置一致。

继续阅读