CentOS8 使用 Docker安装 FasdDFS 并配置 Nginx

最近需要在虚拟机的 CentOS8 上安装一个 FasdDFS,用于本地单机环境下使用,但是网上找了很多教程都不太好用,要么直接无法安装,要么重启 CentOS8 系统后就无法启动 Docker 容器,最终通过不断尝试,总结出了一个比较靠谱的方法

首先使用的 Docker 镜像是 ygqygq2/fastdfs-nginx。网上教程比较多的 season/fastdfs 和 delron/fastdfs 我都尝试过,但总会有些问题。

其次,每次关闭 CentOS 系统时都需要先关闭 FastDFS(先关闭 storage,再关闭 tracker),否则下次会无法启动 storage!
这里建议如果使用的是 VMWare 虚拟机,一定要及时保存下快照,方便出错了能恢复

第一步:安装 FastDFS

  • 下载镜像
    docker pull ygqygq2/fastdfs-nginx
    
  • 查看镜像
    使用这个命令查看有没有刚才下载好的镜像
    docker images
    
  • 安装 tracker
    docker run -dit --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs ygqygq2/fastdfs-nginx:latest tracker
    
    注意:要先安装 tracker,再安装 storage
  • 安装 storage
    docker run -dit --network=host --name storage -e TRACKER_SERVER=192.168.100.200:22122 -v /var/fdfs/storage:/var/fdfs ygqygq2/fastdfs-nginx:latest storage
    
    注意:TRACKER_SERVER 要配置自己的 IP 地址,端口默认 22122
  • 查看
    使用这个命令查看所有容器,查看有没有刚才安装的两个容器
    docker ps -a
    

完成上面的步骤已经安装好了 tracker 和一个 storage,如果需要搭集群可以继续安装更多 storage。

在浏览器输入 http://192.168.100.200:8080/ ,如果跳转到 Welcome to tengine! (Tengine 是基于 Nginx 开发的,兼容 Nginx 的配置)页面则说明安装成功

第二步:配置(可省略)

Nginx 默认端口号是 8080,但我希望通过 80 端口访问,需要进行 Nginx 配置

  • 进入 storage 容器
    docker exec -it c37768f52447 /bin/bash
    
  • 修改 storage.conf 配置文件
    vi /etc/fdfs/storage.conf
    
    做如下修改:
    # is this config file disabled
    # false for enabled
    # true for disabled
    
    # 配置 http 访问端口
    http.server_port=80
    
    disabled=false
    
    ...
    
  • 修改 nginx.conf 配置文件
    vi /usr/local/nginx/conf/nginx.conf
    
    在 http{} 配置的最后添加:
    server {
         listen       80;
         server_name  localhost;
         location ~/group[0-9]/ {
             ngx_fastdfs_module;
         }
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root html;
         }
     }
    
  • 重启 storage 容器
    exit #先退出容器
    
    docker stop [容器 ID]
    
    docker start [容器 ID]
    

此时已经完成了 Nginx 配置。在浏览器中输入 http://192.168.100.200/ ,如果跳转到 Welcome to tengine! 页面则说明修改成功

第三步:上传文件

  • 先找一个文件(我这里找了一张名为 logo.jpeg 的图片),用 xftp 上传到 CentOS 的 /var/fdfs/storage 目录下
    由于在安装容器时做了目录映射,所以这个文件在 storage 容器 /var/fdfs/ 目录下也能访问
  • 进入 storage 容器(如果已经在容器里可以忽略这一步)
    docker exec -it c37768f52447 /bin/bash
    
  • 上传文件
    cd /var/fdfs
    
    /usr/bin/fdfs_upload_file /etc/fdfs/client.conf logo.jpeg 
    
    执行上面的上传命令后,会返回一个如下的路径
    group1/M00/00/00/wKhkyGCfZESAKmT8AAEh4v9GG-495.jpeg
    
  • 测试
    打开浏览器,访问 http://192.168.100.200/group1/M00/00/00/wKhkyGCfR8KADCkgAAEh4v9GG-497.jpeg ,出现图片就成功了
    如果没有做第二步的 Nginx 配置,需要加上 8080 端口号
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值