准备
软件包
1 2 3 4
| fastdfs-5.11.tar.gz fastdfs-nginx-module_v1.16.tar.gz libfastcommon.tar.gz nginx-1.13.6.tar.gz
|
文件路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@swjpro ~]# cd /usr/local/docker/fastdfs/ [root@swjpro fastdfs]# ll total 12 -rw-r--r-- 1 root root 178 Jun 12 19:08 docker-compose.yml drwxr-xr-x 2 root root 4096 Jun 14 23:10 environment drwxr-xr-x 4 root root 4096 Jun 15 13:48 storage [root@swjpro fastdfs]# cd ./environment/ [root@swjpro environment]# ll total 1796 -rw-r--r-- 1 root root 1595 Jun 13 14:48 ~ -rw-r--r-- 1 root root 1457 Jun 12 19:01 client.conf -rw-r--r-- 1 root root 429 Dec 2 2017 config -rw-r--r-- 1 root root 2922 Jun 14 23:04 Dockerfile -rwxr-xr-x 1 root root 119 Jun 14 18:06 entrypoint.sh -rw-r--r-- 1 root root 336939 Dec 2 2017 fastdfs-5.11.tar.gz -rw-r--r-- 1 root root 17510 Dec 2 2017 fastdfs-nginx-module_v1.16.tar.gz -rw-r--r-- 1 root root 440783 Dec 2 2017 libfastcommon.tar.gz -rw-r--r-- 1 root root 3681 Jun 12 19:04 mod_fastdfs.conf -rw-r--r-- 1 root root 989760 Dec 2 2017 nginx-1.13.6.tar.gz -rw-r--r-- 1 root root 2637 Dec 2 2017 nginx.conf -rw-r--r-- 1 root root 7917 Jun 12 18:59 storage.conf -rw-r--r-- 1 root root 7385 Dec 2 2017 tracker.conf
|
各个配置文件
docker-compose.yml
1 2 3 4 5 6 7 8 9
| version: '3.1' services: fastdfs: build: environment restart: always container_name: fastdfs volumes: - ./storage:/fastdfs/storage network_mode: host
|
dockerfile内容(centos7版本)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| FROM centos:7.4.1708 MAINTAINER 1056438464@qq.com
# 更新数据源 RUN cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup RUN yes|yum install wget -y RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo RUN wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo RUN yum clean all RUN yum makecache RUN yes| yum update -y
# 安装环境依赖 RUN yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl net-tools
# 复制工具包 ADD fastdfs-5.11.tar.gz /usr/local/src ADD fastdfs-nginx-module_v1.16.tar.gz /usr/local/src ADD libfastcommon.tar.gz /usr/local/src ADD nginx-1.13.6.tar.gz /usr/local/src
# 安装 libfastcommon WORKDIR /usr/local/src/libfastcommon RUN ./make.sh && ./make.sh install
RUN ln -sf /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so RUN ln -sf /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so RUN ln -sf /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so RUN ln -sf /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
# 安装 FastDFS WORKDIR /usr/local/src/fastdfs-5.11 RUN ./make.sh && ./make.sh install
# 安装 FastDFS 跟踪器 ADD tracker.conf /etc/fdfs RUN mkdir -p /fastdfs/tracker
# 配置 FastDFS 存储 ADD storage.conf /etc/fdfs RUN mkdir -p /fastdfs/storage
# 配置 FastDFS 客户端 ADD client.conf /etc/fdfs
# 配置 fastdfs-nginx-module ADD config /usr/local/src/fastdfs-nginx-module/src
# FastDFS 与 Nginx 集成 WORKDIR /usr/local/src/nginx-1.13.6 RUN ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src RUN make && make install ADD mod_fastdfs.conf /etc/fdfs
WORKDIR /usr/local/src/fastdfs-5.11/conf RUN cp http.conf mime.types /etc/fdfs/
# 配置 Nginx ADD nginx.conf /usr/local/nginx/conf
COPY entrypoint.sh /usr/local/bin/ ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# nginx 端口打开 WORKDIR / EXPOSE 8888 CMD ["/bin/bash"]
|
dockerfile内容(ubuntu版本)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| FROM ubuntu:xenial MAINTAINER 1056438464@qq.com
# 更新数据源 WORKDIR /etc/apt RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > sources.list RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> sources.list RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> sources.list RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> sources.list RUN apt-get update
# 安装依赖 RUN apt-get install make gcc libpcre3-dev zlib1g-dev --assume-yes
# 复制工具包 ADD fastdfs-5.11.tar.gz /usr/local/src ADD fastdfs-nginx-module_v1.16.tar.gz /usr/local/src ADD libfastcommon.tar.gz /usr/local/src ADD nginx-1.13.6.tar.gz /usr/local/src
# 安装 libfastcommon WORKDIR /usr/local/src/libfastcommon RUN ./make.sh && ./make.sh install
# 安装 FastDFS WORKDIR /usr/local/src/fastdfs-5.11 RUN ./make.sh && ./make.sh install
# 配置 FastDFS 跟踪器 ADD tracker.conf /etc/fdfs RUN mkdir -p /fastdfs/tracker
# 配置 FastDFS 存储 ADD storage.conf /etc/fdfs RUN mkdir -p /fastdfs/storage
# 配置 FastDFS 客户端 ADD client.conf /etc/fdfs
# 配置 fastdfs-nginx-module ADD config /usr/local/src/fastdfs-nginx-module/src
# FastDFS 与 Nginx 集成 WORKDIR /usr/local/src/nginx-1.13.6 RUN ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src RUN make && make install ADD mod_fastdfs.conf /etc/fdfs
WORKDIR /usr/local/src/fastdfs-5.11/conf RUN cp http.conf mime.types /etc/fdfs/
# 配置 Nginx ADD nginx.conf /usr/local/nginx/conf
COPY entrypoint.sh /usr/local/bin/ ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# nginx 端口打开 WORKDIR / EXPOSE 8888 CMD ["/bin/bash"]
|
entrypoint.sh
1 2 3 4
| #!/bin/sh /etc/init.d/fdfs_trackerd start /etc/init.d/fdfs_storaged start /usr/local/nginx/sbin/nginx -g 'daemon off;'
|
- 注:Shell 创建后是无法直接使用的,需要赋予执行的权限,使用 chmod +x entrypoint.sh 命令 *
各种配置文件说明
tracker.conf
FastDFS 跟踪器配置,容器中路径为:/etc/fdfs,修改为:
1
| base_path=/fastdfs/tracker
|
storage.conf
FastDFS 存储配置,容器中路径为:/etc/fdfs,修改为:
1 2 3 4
| base_path=/fastdfs/storage store_path0=/fastdfs/storage tracker_server=你的服务器地址:22122 http.server_port=8888
|
client.conf
FastDFS 客户端配置,容器中路径为:/etc/fdfs,修改为:
1 2
| base_path=/fastdfs/tracker tracker_server=服务器地址:22122
|
config
fastdfs-nginx-module 配置文件,容器中路径为:/usr/local/src/fastdfs-nginx-module/src,修改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # 修改前 CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
# 修改后 CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient" ```shell
# fastdfs-nginx-module 配置文件,容器中路径为:/usr/local/src/fastdfs-nginx-module/src,修改为: ```shell connect_timeout=10 tracker_server=服务器地址:22122 url_have_group_name = true store_path0=/fastdfs/storage
|
nginx.conf
Nginx 配置文件,容器中路径为:/usr/local/src/nginx-1.13.6/conf,修改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| user root; worker_processes 1;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { listen 8888; server_name localhost;
location ~/group([0-9])/M00 { ngx_fastdfs_module; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
|
启动容器
测试上传
1 2
| # 交互式进入容器 docker exec -it fastdfs /bin/bash
|
测试文件上传
1
| /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs-5.11/INSTALL
|
服务器反馈上传地址
1
| group1/M00/00/00/rBCK9F0Eh0eAPKOHAAAeSwu9TgM2029286
|
- 由于我安装的阿里云服务器,所以要修改阿里云安全组打开22122/23000和8888端口 *
- 关闭防火墙 *
参考文章
1 2 3 4 5 6 7 8 9 10 11
| 推荐看这几篇 https://www.cnblogs.com/yanghongfei/p/7761927.html https://blog.csdn.net/qq_34301871/article/details/80060235 https://www.cnblogs.com/PurpleDream/p/4510279.html
https://www.jianshu.com/p/a4cc1cd09d57 https://codegitz.github.io/2019/01/09/fdfs%E5%AE%89%E8%A3%85Nginx%E6%A8%A1%E5%9D%97%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98/ https://www.cnblogs.com/chiangchou/p/fastdfs.html
https://www.linuxidc.com/Linux/2015-11/125095.htm https://blog.csdn.net/weixin_39453325/article/details/82932382
|