• 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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    单元测试Junit使用与详解
    1045 Favorite Color Stripe
    PHP 框架详解 - Symfony 框架
    邻苯二甲酸酐修饰卵清蛋白(HP-OVA),雷帕霉素偶联卵清蛋白 rapamycin-OVA
    3D重建相关
    java数据结构之LinkedBlockingQueue
    CodeForces刷题C语言:Next Test、Spit Problem、Traffic Lights、Reconnaissance、Borze
    解决kali beef启动失败问题及实战
    大数据开发 --- windows环境下jdk和本地maven安装
    【Word】Word公式导出PDF后出现井号括号#()错误
  • 原文地址:https://blog.csdn.net/qq_46416934/article/details/126056392