docker搭建fastdfs集群

本文档详细介绍了如何在三台虚拟机上搭建FastDFS集群,包括安装tracker、storage和Nginx,并利用Docker进行容器化部署。通过下载提供的工具包,配置相关文件,创建Dockerfile和docker-compose.yml文件,最后验证集群和Nginx的正常工作,确保文件上传和访问功能的实现。

具体搭建过程参照官方wiki:

https://github.com/happyfish100/fastdfs/wiki

按照官方wiki,将配置文件做修改并打包,然后自己写成Dockerfile

环境:三台虚拟机

10.200.18.200
10.200.18.201
10.200.18.202

每台虚拟机上都按装tracker, storage,nginx

需要用到的文件已打包:tools.tar.gz

下载链接:https://download.csdn.net/download/zdxtmp/11783345

创建文件夹:mkdir -p /usr/local/docker/fastdfs/env

将包放在/usr/local/docker/fastdfs/env目录下

在env目录下新建Dockerfile文件

FROM centos
MAINTAINER zd
#安装编译环境
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
RUN mkdir -p /home/dfs

WORKDIR /usr/local/src
#复制并解压缩各种源码
ADD tools.tar.gz /usr/local/src

# 安装 libfastcommon
WORKDIR /usr/local/src/libfastcommon
RUN ./make.sh && ./make.sh install

# 安装 FastDFS
WORKDIR /usr/local/src/fastdfs
RUN ./make.sh && ./make.sh install
RUN cp /usr/local/src/tracker.conf /etc/fdfs/tracker.conf
RUN cp /usr/local/src/storage.conf /etc/fdfs/storage.conf
RUN cp /usr/local/src/client.conf /etc/fdfs/client.conf
RUN cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/
RUN cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/

#安装fastdfs-nginx-module
RUN cp /usr/local/src/mod_fastdfs.conf /etc/fdfs
#安装nginx
WORKDIR /usr/local/src/nginx-1.15.4
RUN ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
RUN make && make install

RUN cp /usr/local/src/nginx.conf /usr/local/nginx/conf


RUN cp /usr/local/src/start.sh /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/start.sh"]

WORKDIR /
EXPOSE 8888

回到上级目录

cd /usr/local/docker/fastdfs

创建docker-compose.yml文件:

version: '3.1'
services:
  fastdfs:
    build: env
    restart: always
    container_name: fastdfs
    volumes:
      - ./dfs:/home/dfs
    network_mode: host

docker-compose build 等待执行完成

构建完成后 docker-compose up -d启动容器

 

测试是否可用:随便哪个节点

进入容器:

docker exec -it fastdfs /bin/bash

上传文件:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs/INSTALL

上传成功,返回group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864

检测集群:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf 

出现storage1-storage3的详细信息,说明三个节点部署成功

nginx访问:

http://10.200.18.200:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864

http://10.200.18.201:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864

http://10.200.18.202:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864

可以下载,说明成功

 

包里配置文件:

client.conf:

#需要修改的内容如下
base_path=/home/dfs
tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122

mod_fastdfs.conf

#需要修改的内容如下
tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122
url_have_group_name=true
store_path0=/home/dfs

nginx.conf

#添加如下配置
server {
    listen       8888;    ## 该端口为storage.conf中的http.server_port相同
    server_name  localhost;
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
}

storage.conf

#需要修改的内容如下
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs  # 数据和日志文件存储根目录
store_path0=/home/dfs  # 第一个存储目录

tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122

http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

tracker.conf

#需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs  # 存储日志和数据的根目录

start.sh脚本

#!/bin/sh
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
/usr/local/nginx/sbin/nginx -g 'daemon off;'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值