• docker搭建fastdfs环境


    fastdfs是一个开源的分布式文件系统,在实际使用中,通过源码编译安装过程非常复杂,但是通过docker快速构建却非常容易。下面介绍通过docker安装fastdfs的方法。

    docker镜像的选择也挺重要的,我最开始选择season/fastdfs,发现有些麻烦,有的版本好像带nginx比如1.2,有的版本又不带nginx比如latest。我使用season/fastdfs镜像安装没有成功过,但是使用delron/fastdfs镜像就成功了,而且只需要启动两个容器,一个tracker,一个storage即可。storage容器中自带了nginx,不需要额外启动一个nginx容器。

    先通过docker pull delron/fastdfs拉取最新的镜像。

    分别启动tracker容器和storage容器。

    [root@server ~]# docker run -d --name tracker -p 22122:22122 delron/fastdfs tracker
    418de7394acd11a4b92b014501e9f7aaa240099249b95ea6aa49cd6bd31da18e
    [root@server ~]# docker run -d --name storage -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=192.168.197.128:22122 delron/fastdfs storage
    ac5ea9a959e2fbcdba433d8711e36df95f23761ff5cdcba6c5d3dea954550e90
    [root@server ~]# docker ps
    CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                                                                                                           NAMES
    ac5ea9a959e2   delron/fastdfs   "/usr/bin/start1.sh …"   5 seconds ago   Up 4 seconds   8080/tcp, 0.0.0.0:8888->8888/tcp, :::8888->8888/tcp, 22122/tcp, 0.0.0.0:23000->23000/tcp, :::23000->23000/tcp   storage
    418de7394acd   delron/fastdfs   "/usr/bin/start1.sh …"   8 minutes ago   Up 8 minutes   8080/tcp, 8888/tcp, 23000/tcp, 0.0.0.0:22122->22122/tcp, :::22122->22122/tcp                                    tracker
    [root@server ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    启动tracker容器的时候,暴露22122端口给宿主机,启动storage容器的时候暴露8888,23000端口给宿主机。

    这两个容器的启动,跟我们平时启动别的容器不一样的是,在指定虚拟机镜像之后,增加了一个命令tracker和storage,这两个不同的命令会针对同样的镜像,启动不同的服务。

    上传一张图片到storage容器中:

    docker cp vmware-0.png storage:/
    
    • 1

    进入容器测试:

    检查/etc/fdfs/client.conf配置

    这里的tracker_server=192.168.197.128:22122配置,直接根据我们在创建storage容器的时候指定的环境变量TRACKER_SERVER自动配置了,而使用season/fastdfs镜像这里就不行,需要手动修改配置。这一点很坑。

    上传我们之前复制到容器中的图片vmware-0.png

    上传正常,返回图片路径:group1/M00/00/00/rBEAA2Kf_quAOgQdAAAYdM_Mb3k255.png

    我们在浏览器中通过:http://192.168.197.128:8888/group1/M00/00/00/rBEAA2Kf_quAOgQdAAAYdM_Mb3k255.png访问,效果如下:

    8888端口我们之前在启动虚拟机的时候暴露给了宿主机,这个8888端口是nginx在监听,我们可以看配置文件/usr/local/nginx/conf/nginx.conf:

    通过delron/fastdfs镜像,整体操作下来,最多需要三个命令:

    • docker pull delron/fastdfs
    • docker run -d --name tracker -p 22122:22122 delron/fastdfs tracker
    • docker run -d --name storage -p 23000:23000 -p 8888:8888 -e TRACKER_SERVER=192.168.197.128:22122 delron/fastdfs storage

    无需更改任何配置,启动即成功。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    【Django | 开发】 面试招聘信息网站(为已有数据库生成管理后台)
    源码学习之Spring容器创建原理
    一文搞懂Java对象内存布局
    Golang学习:基础知识篇(三)—— Map(集合)
    threejs examples 学习
    OpenHarmony社区运营报告(2023年8月)
    java计算机毕业设计ssm+vue红联小区果蔬销售网站-水果购物商城
    公众号开发实践:用PHP实现通过接口自定义微信公众号菜单
    Python快速而美丽[v1.0.0][命令行工具]
    SV--线程(semaphore)
  • 原文地址:https://blog.csdn.net/qq_46416934/article/details/126056392