Docker安装部署FastDFS详细过程

2023-10-27

FastDFS分布式文件存储的由来:

  1. 在我们的项目中有很多需要存储的内容出现,比如图片,视频,文件等等,在早期的时候用户量不大,产生的文件也不是很多,这时我们可以把文件和服务程序放在一个服务器中。
  2. 随着文件越来越多,服务器的资源会被文件资源大量占据,从而影响到服务器的稳定,这时我们可以单独的把文件服务器拆出来。
  3. 拆解出来后,文件服务的使用不会影响到我们的系统服务的稳定,但是当用户量越来越大,存储的文件就会越来越多,这时如果还是单台的文件服务,比如1000T的文件,这时是存储不下去的,这时就产生了我们将的分布式文件存储。
  4. 也就是我们解决如何将这1000T的文件分散的存储到各个节点上,然后当我们需要读取文件的时候又能非常快的帮我们把文件找到。这个就是分布式文件系统帮我们解决的问题了。

1.先去docker hub寻找镜像文件

docker search fastdfs

在这里插入图片描述

2.拉取镜像文件

docker pull delron/fastdfs

3.通过Docker命令来创建Tracker服务

# 先创建文件夹
mkdir /mydata/fastdfs/tracker
cd /mydata/fastdfs/tracker
# 执行docker命令
docker run -d --name tracker --network=host -v /mydata/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
# 注意:tracker服务默认的端口为22122

4.通过Docker命令构建构建Storage服务

# 创建文件夹
mkdir /mydata/fastdfs/storage
cd /mydata/fastdfs/storage
# 执行命令
docker run -d --name storage --network=host  -e TRACKER_SERVER=x.x.x.x:22122 -v /mydata/fastdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
# 注意:其中TRACKER_SERVER中的ip要修改为你的Tracker服务所在的服务IP地址

默认情况下在Storage服务中是帮我们安装了Nginx服务的,相关的端口为:

  • 服务 默认端口
    tracker 22122
    storage 23000
    Nginx 8888

5.配置文件的查看&根据要求自行修改(比如端口冲突)

注意:如果要修改端口或者端口冲突了,下面这俩个配置文件都要修改。

[root@VM-4-9-centos ~]# docker exec -it storage /bin/bash
[root@VM-4-9-centos nginx-1.12.2]# ls
CHANGES  CHANGES.ru  LICENSE  Makefile  README  auto  conf  configure  contrib  html  man  objs  src
[root@VM-4-9-centos nginx-1.12.2]# cd /    
[root@VM-4-9-centos /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@VM-4-9-centos /]# cd etc/fdfs/
[root@VM-4-9-centos fdfs]# ls
client.conf         http.conf   mod_fastdfs.conf  storage.conf.sample  storage_ids.conf.sample  tracker.conf.sample
client.conf.sample  mime.types  storage.conf      storage_ids.conf     tracker.conf
[root@VM-4-9-centos fdfs]# cat storage.conf

在这里插入图片描述

[root@VM-4-9-centos fdfs]# cd /usr/local/nginx  
[root@VM-4-9-centos nginx]# ll
total 36
drwx------ 2 nobody root 4096 Oct 25 14:47 client_body_temp
drwxr-xr-x 1 root   root 4096 Apr 29  2018 conf
drwx------ 2 nobody root 4096 Oct 25 14:47 fastcgi_temp
drwxr-xr-x 2 root   root 4096 Apr 29  2018 html
drwxr-xr-x 1 root   root 4096 Oct 25 14:47 logs
drwx------ 2 nobody root 4096 Oct 25 14:47 proxy_temp
drwxr-xr-x 2 root   root 4096 Apr 29  2018 sbin
drwx------ 2 nobody root 4096 Oct 25 14:47 scgi_temp
drwx------ 2 nobody root 4096 Oct 25 14:47 uwsgi_temp
[root@VM-4-9-centos nginx]# cd conf/
[root@VM-4-9-centos conf]# ls
fastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utf
fastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default
[root@VM-4-9-centos conf]# cat nginx.conf

在这里插入图片描述

6.测试图片上传

6.1 首先在虚拟机的/mydata/fastdfs/storage下保存一张图片,通俗xftp直接上传

在这里插入图片描述

6.2 进入storage 容器,执行上传文件的命令

[root@VM-4-9-centos storage]# docker exec -it storage bash
[root@VM-4-9-centos nginx-1.12.2]# cd /var/fdfs/
[root@VM-4-9-centos fdfs]# ls
1.jpg  logs data
[root@VM-4-9-centos fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg 
group1/M00/00/00/CgoMS2SaUPKASQSrAAFSK1nBHGM554.png
  • 上传文件的指令
    /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg
  • 上传成功后根据返回的地址在浏览器中进行访问
  • 返回的路径
    group1/M00/00/00/CgoMS2SaUPKASQSrAAFSK1nBHGM554.png

6.3 浏览器地址栏中输入地址,直接访问

http://ip地址:8888/group1/M00/00/00/CgoMS2SaUPKASQSrAAFSK1nBHGM554.png
成功访问:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker安装部署FastDFS详细过程 的相关文章

  • 检查两个日期周期是否重叠[重复]

    这个问题在这里已经有答案了 我有两个日期范围 start1 end1 gt gt date1 start2 end2 gt gt date2 我想检查两个日期是否重叠 我的流程图我假设 运算符对于比较是有效的 boolean isOverL
  • Android 服务 START_STICKY START_NOT_STICKY

    我需要让我的服务始终在后台运行 并使用 startService 函数启动我的服务 无论应用程序的状态如何 我都不想重新启动服务 这是我的观察 START STICKY gt 如果应用程序启动 则服务正在重新启动 当应用程序关闭时 服务也会
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 如何在休眠中持久保存实体期间验证实体的约束

    我有一个带有字段名称的实体 我希望它不超过255 所以我这样定义它 Entity public class A implements Serializable NotNull Size max 255 private String name
  • 在 Selenium Grid 中注册 PhantomJS 节点时出错

    我有以下问题 我成功启动了 Selenium Grid hub java jar selenium server standalone 2 53 0 jar role hub 之后我尝试使用以下命令启动 PhantomJS 节点 phant
  • 使用 PowerMock 和 TestNG 模拟单个静态方法

    class StaticClass public static String a return a public static String ab return a b 我想嘲笑StaticClass a以便它返回 x 并致电StaticC
  • 控制启动时的竞争条件

    我有一些代码想要执行一些一次性初始化 但这段代码没有明确的生命周期 因此在初始化完成之前 我的逻辑可能会被多个线程调用 所以 我想基本上确保我的逻辑代码 等待 直到初始化完成 这是我的第一次剪辑 public class MyClass p
  • 如何使用 Java 文档 API 为 OrientDB 数据库创建自动递增索引/序列?

    我通过其文档 API 将 OrientDB 与 Java 结合使用 我有一个简单的类叫做items它有一个属性ID 我明确声明架构如下 OSchema schema db getMetadata getSchema OClass items
  • 具有多个字符串的列表视图

    我正在尝试创建一个包含多个字符串的列表视图 现在我有一个可以实现的功能 while i lt 10 GETS DATA FROM WEBPAGE ETC a DATAFROMWEBPAGE1 b DATAFROMWEBPAGE2 c DAT
  • 不带破折号的 CliBuilder 参数

    使用 Groovy CliBuilder 理想情况下我希望有一个命令行 如下所示 MyProgram groovy CommandName arg1 arg2 arg3 是否可以使用 CliBuilder 解析提取 CommandName
  • xclock 工作,X11 DISPLAY 设置但仍然 java.awt.HeadlessException:

    获取 java awt HeadlessException 似乎是一个非常常见的问题 并且 中已经讨论过 以下问题 没有 X11 DISPLAY 变量 这是什么意思 https stackoverflow com questions 662
  • 异步不适用于控制器的抽象超类方法

    我有一个BaseRestControllerRest 控制器扩展的类 它有一个我想异步运行的方法 public abstract class BaseRestController Async someThreadPoolTaskExecut
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 在Linux中执行jar文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我创建了一个可执行的 Java jar 文件 也就是说 我将 java 程序正确打包到 jar 文件中 包括 META INF MANIFEST 文件
  • 如何根据受保护的 String doInBackground 方法中 AsyncTask 的结果调用 Toast.makeText() ?

    我从 AsyncTask 中的数据库中获取数据 如果它为空 我想吐司一个警告文本 我在 AsyncTask 中尝试过 但我了解到它不是在工作线程中调用的 这是我的 doInBackground 方法 protected String doI
  • 避免加密和编码的 URL 字符串中的换行符

    我正在尝试实现一个简单的字符串编码器来混淆 URL 字符串的某些部分 以防止它们被用户弄乱 我使用的代码几乎与示例中的相同JCA指南 http docs oracle com javase 6 docs technotes guides s
  • Java Media API:java media api 下载

    我在哪里可以找到javax media jar 文件 在sun站点它下载一个安装程序 有没有可用的java媒体jar 没有 javax media 具体是 jar 文件 该包位于 jmf jar 文件中 您需要运行安装程序并取出 jar 或
  • 确保 MAVEN_HOME 设置正确

    这里是 Java 和 Maven 菜鸟 使用 OSX 10 8 并使用 HomeBrew 安装 Maven 1 如果我说which mvn我会得到这个 usr local bin mvn 2 如果我说echo MAVEN HOME我不会得到
  • 项目级别的@PowerMockIgnore

    在 Maven 中运行时 我的 powermock 测试用例出现以下错误 java lang LinkageError loader constraint violation loader instance of org powermock
  • Cassandra 会话与集群 有什么可分享的?

    考虑 Cassandra 的 Session 和 Cluster 类 Java 驱动程序 我想知道有什么区别 在 Hibernate 中 每次都会创建一个会话并共享会话工厂 从许多来源我了解到 它被认为是创建一个会话并在多个线程之间共享它

随机推荐

  • 网络安全笔记5——数字签名

    网络安全笔记5 数字签名 参考课程 中国大学MOOC 网络安全 北京航空航天大学 文章目录 网络安全笔记5 数字签名 基本概念 分类 数学表示 RSA数字签名机制 ElGamal数字签名机制 Schnorr数字签名机制 DSS数字签名机制
  • 未能找到任何适合于指定的区域性或非特定区域性的资源

    试了所有的方法都不行 最后把resx文件删了 重新添加图片图标 ok
  • UVa 133 The Dole Queue(圈的下标处理)

    本题难点在于用数组处理圈状物时下标的计算 include
  • C++下几种新的数据类型

    一 CString 用法 CString s 123 对应库 include
  • 如何查看是否安装了java环境?

    一 win R 输入cmd 二 回车后进入cmd界面 三 在cmd窗口中输入java 若提示 java 不是内部或外部命令 也不是可运行的程序或批处理文件 则表示未安装JRE 这个错误提示表明系统无法找到 java 程序 可能是由于 Jav
  • Datatables

    1 10 x与1 9 x参数名对照表 Datatables 1 10 x在命名上与1 9 x的有区别 新版的使用的是驼峰的命名规则 而之前的是采用匈牙利命名规则 当然 这些变化都是向下兼容的 你可以继续使用旧版本的api方法的参数和名称 如
  • MongoDB安装配置详细教程

    1 安装平台 windows win7 win10均可 2 MongoDB安装包下载 MongoDB的安装包下载地址 https www mongodb com download center atlas 3 安装过程 1 运行下载的msi
  • 搞笑幽默段子-1(仅供娱乐)

    老师问小明 小明 你昨天为什么没来上课 小明回答 老师 我昨天去办事 结果碰到一只猪 我和它相视了一会儿 然后它居然把我当成兄弟 跟着我进了学校 我只好带着它一起上课 老师一脸错愕 你确定那只猪跟着你一起进了学校 小明犹豫片刻 回答 老师
  • node实现文件上传(1)

    1 FormData对象 以对象的方式来表示页面中的表单 又称为表单对象 以key value的方式来保存数据 XMLHttpRequest对象可以轻松的表单对象发送的服务器端 1 是一个构造函数 new FormData 2 常用的API
  • 分布式事务的二阶段提交和三阶段提交

    分布式事务 是指存在多个跨库事务的事务一致性问题 或者是指分布式架构下由多个应用节点组成的多个事务之间的事务一致性问题 在单点服务时 某电商会员购买上市时会出现以下情况 开启数据库事务 创建订单 会员积分减少 商品库存减少 提交数据库事务
  • MYSQL获取最近7天的日期

    写一个简单的 获取最近7填日期的sql select DATE SUB curdate INTERVAL 1 DAY day1 union select DATE SUB curdate INTERVAL 2 DAY day2 union
  • Zookeeper基础知识(一)

    一 Zookeeper是什么 ZooKeeper是一个开放源码的分布式协调服务 它是集群的管理者 监视着集群中各个节点的状态根据节点提交的反馈 进行下一步合理操作 最终 将简单易用的接口和性能高效 功能稳定的系统提供给用户 分布式应用程序可
  • echarts的grid——图表的位置配置

    博主 小猫娃来啦 文章核心 echarts的grid 图表的位置配置 文章目录 认识并了解grid grid有哪些属性 有什么用 关键点 grid所有属性 containLabel属性 总结 认识并了解grid 首先还是先认识grid 要弄
  • VMware中安装Ubuntu

    前言 本文档将演示通过 VMware 安装 Ubuntu 所使用的文件如下 VMware Workstation Pro ubuntu 16 04 6 desktop amd64 iso 本文档分为三个部分 新建虚拟机 安装系统 调整页面
  • gradle引入依赖包/maven引入依赖包

    1 打开https mvnrepository com 搜索出需要的jar包 2 点击进入需要jar包 选择maven或gradle的tab页 复制依赖url即可 如图 3 gradle项目的话 点击buildDependents即可 如图
  • 工业机器人仿真参考

    最近有一些朋友看到我做的关于Unity3d仿真机器人的项目 本次我在平台做以分享 希望的朋友或者有需要在此基础做开发的可以参考下 开发工具 下位机 Unity3D 上位机 Visual Studio 机械臂模型 TH6 QKM SCARA
  • Linux内核启动过程学习

    过完年来 敲着键盘都有点生疏了 很多东西都有点忘记了 还有刚上班还有点不习惯 状态还没有转换过来 没有办法趁这个机会就复习一下Linux的启动过程吧 asmlinkage void init start kernel void char c
  • 用python做自动化测试--序

    几年来 都有个想法 写个 用Python做自动化测试 的系列文章 把自己的经验和大家共享 和大家多交流 同时总结下自己掌握的东西 但苦于一直忙 其实准确点的说是自己懒 迟迟没有开始 我想不能再懒了 要不以后会更忙 更懒 我为什么选择pyth
  • Python统计学实例之正态分布:计算男女身高相差>5厘米的概率

    正态分布计算 示例1 正态分布计算实例 计算男女身高相差 gt 5厘米的概率 解题思路 用到的公式 总结 正态分布计算实例 计算男女身高相差 gt 5厘米的概率 假设男生身高 X N 71 20 25 女生身高 Y N 64 16 解题思路
  • Docker安装部署FastDFS详细过程

    FastDFS分布式文件存储的由来 在我们的项目中有很多需要存储的内容出现 比如图片 视频 文件等等 在早期的时候用户量不大 产生的文件也不是很多 这时我们可以把文件和服务程序放在一个服务器中 随着文件越来越多 服务器的资源会被文件资源大量