一、安装环境
最近想升级fastdfs的版本,主要是因为旧版本版本在配置nginx module的时候提示需要升级版本才能使用。然而升级在升级之前,又需要升级libfastcommon,过程繁琐,libfastcommon跟fdfs的版本不匹配导致升级失败。
新版本的fdfs支持了docker部署,所以想着使用docker部署的方式,隔离主机环境。
环境配置如下:
宿主机器 | centos7 |
---|---|
fastdfs | 6.06 |
二、安装步骤
1、制作镜像
下载最新版本的fdfs(V6.06),查看Dockerfile,使用docker命令下载基础镜像。
#下载最新版本fdfs
git clone https://github.com/happyfish100/fastdfs.git
#加载基础镜像
docker pull centos:7
源码目录下,支持使用本地源码制作镜像(dockerfile_local),以及远程下载源码制作镜像(dockerfile_network)。
进入源码目录,开始制作fdfs的镜像,本次使用dockerfile_network的Dockerfile制作镜像,命令:
docker build -t fastdfs:6.06 .
然后启动镜像:
#docker run -d -e FASTDFS_IPADDR=192.168.1.234 -p 8888:8888 -p 22122:22122 -p 23000:23000 -p 8011:80 --name test-fast 镜像id/镜像名称
docker run -d --name fastdfs -e FASTDFS_IPADDR=192.168.48.128 -p 22122:22122 -p 23000:23000 -p 8888:8888 -p 8011:80 -v /usr/local/fastdfs/:/home/dfs fastdfs:6.06
至此,fdfs启动完成。
三、遇到的问题
启动完fdfs后,容器内部能正常上传,但是在容器外上传会发现访问172.17.0.1:23000 ip端口不同。这是由iptables转发引起的,在宿主机器上配置iptables规则然后重启容器即可解决问题。
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 22122 -d 172.17.0.2 -j SNAT --to 192.168.48.128
这个问题我花了很多时间,最后在这篇博客中找到处理方案
https://www.cnblogs.com/zzsdream/p/11199374.html