声明

1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献。
2)本文仅供学术交流,非商用。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。
4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进添砖加瓦。

一:部署环境

1:需要至少两台以上的主机节点,一台充当supernode,另一台为dfclient
2:每个主机节点都已部署docker守护程序
3:supernode节点已经部署了harbor仓库,可以正常登陆并且pull或push
4:测试环境:服务端:IP:115.67.106.132 客户端:IP:105.12.72.5

二:部署Dragonfly服务器(SuperNode)

注意:使用以下命令需要使用”docker ps- a”以及“docker images”查看是否存在相同的镜像,如果没有被使用,根据实际情况使用 “docker rm $(docker ps -a -q)”删除所有已经停止的容器或者“docker rmi -f <IMAGE_ID>“删除指定容器,如果提示无法删除,容器正在运行,则使用“docker stop <IMAGE_ID>”停止运行的镜像,再进行删除。

docker run -d --name supernode \--restart=always \-p 8001:8001 \-p 8002:8002 \-v /home/admin/supernode:/home/admin/supernode \dragonflyoss/supernode:1.0.2 --download-port=8001

三:部署Dragonfly客户端(dfclient)

1:下面的操作应该在客户机上执行
Dragonfly的配置文件/etc/dragonfly默认位于目录中。使用容器部署客户端时,需要将配置文件挂载到容器上。注意:如果路径下没有/etc/dragonfly/dfget.yml 需要自己创建

cat <<EOD > /etc/dragonfly/dfget.yml
nodes:- 115.67.106.132
EOD

2:启动蜻蜓客户端

docker run -d --name dfclient \ --restart = always \ -p 65001:65001 \ -v / etc / dragonfly :/ etc / dragonfly \ -v $ HOME /.small-dragonfly:/root/.small-dragonfly \ dragonflyoss / dfclient:1.0.2 --registry https://index.docker.io

3:注意:可以直接执行以上命令,但是值得注意的是以上命令中 ”registry https://index.docker.io ” docker 不支持 https://index.docker.io 以外的 registry,由于我们需要指向自己的仓库,所以不能通过registry 直接配置registry 115.67.106.132:8111/test。

4:我们需要使用docker 的proxy 模式,将Dfdaemon用作Docker Daemon的HTTP代理,首先需要在客户端中添加代理规则 /etc/dragonfly/dfdaemon.yml:

proxies:
- regx: blobs/sha256.*

将docker守护程序的dfdaemon设置为HTTP_PROXY和HTTPS_PROXY /etc/systemd/system/docker.service.d/http-proxy.conf:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:65001"
Environment="HTTPS_PROXY=http://127.0.0.1:65001"

所有需要 docker pull 的都需要修改
proxy 模式可以给指定的任意 http(s) 请求加速。

四:配置Docker Daemon

1:需要在客户端上修改docker守护程序的配置,在 /etc/docker/daemon.json路径下

{"registry-mirrors":["http://127.0.0.1:65001"],"insecure-registries": ["115.67.106.132:8111"]
}

2:重新启动Docker Daemon。

systemctl restart docker

五:验证Dragonfly是否可用

1:在客户端上使用以下命令拉取镜像

docker pull nginx:latest

2:使用以下命令来检查nginx镜像是否通过Dragonfly分发

docker exec dfclient grep 'downloading piece' /root/.small-dragonfly/logs/dfclient.log

如果上面命令的输出内容如下

2019-03-29 15:49:53.913 INFO sign:96027-1553845785.119 : downloading piece:{"taskID":"00a0503ea12457638ebbef5d0bfae51f9e8e0a0a349312c211f26f53beb93cdc","superNode":"127.0.0.1","dstCid":"127.0.0.1-95953-1553845720.488","range":"67108864-71303167","result":503,"status":701,"pieceSize":4194304,"pieceNum":16}

就代表镜像下载是由Dragonfly完成的。 如果需要确保镜像是通过其他对等节点传输的,则可以执行以下命令:

docker exec dfclient grep 'downloading piece' /root/.small-dragonfly/logs/dfclient.log | grep -v cdnnode

如果以上命令没有输出结果,则镜像不会完成通过其他对等节点的传输。否则,通过其他对等节点完成传输。
以上配置了Dragonfly进行镜像分发,如果需要通过自己的harbor仓库拉取镜像,需要使用以下类似的命令进行pull

docker pull 115.67.106.132:8111/xxx/xxx:latest

Docker与Dragonfly详细多机部署相关推荐

  1. jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...

    本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...

  2. 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

  3. Docker最新超详细教程——安装与部署

    Docker最新超详细教程--安装与部署 安装Docker CentOS安装Docker 1. 卸载(可选) 2. 安装yum工具 3. 更新本地镜像源 4. 安装docker 5. 注意事项 关闭防 ...

  4. 使用Docker本机部署Django项目

    前言 因为项目环境配置太麻烦了,所以还是选用了Docker这个技术作为一个部署的解决方案. 这里主要讲如何用Docker启动一个Django项目,所以一些高级的部署方式,比如说用nginx管理等都没有 ...

  5. Checkly如何借助Terraform实现零宕机部署

    Checkly是一款验证API端点正确性和浏览器点击流的监控工具.Checkly创始人Tim Nolet分享了他们在AWS上基于Docker的基础设施中借助Terraform实现零宕机部署的经验. C ...

  6. 【狂神说Java】Docker最新超详细版教程通俗易懂 - 学习笔记

    传送门:官方参考文档 | Docker Hub镜像仓库 | [狂神说Java]Docker视频教程 Docker概述 Docker 是一个便携的应用容器,基于 Go 语言开发的.它可以让开发者打包应用 ...

  7. Docker02 狂神Docker视频学习笔记 :【狂神说Java 哔哩哔哩】Docker最新超详细版教程通俗易懂

    目录 0. 视频源 0. 学习网址 基础篇 1. Docker概述 1.1 Docker为什么出现? 1.2 Docker历史 1.3 Docker能干什么 2. Docker安装 2.1 Docke ...

  8. 【狂神说Java】Docker最新超详细版教程通俗易懂

    Docker 入门 笔记整理来源 B站UP主狂神说Javahttps://space.bilibili.com/95256449/ Docker概述 Docker为什么出现? 一款产品: 开发–上线 ...

  9. Docker+Jenkins+Harbor+Rancher持续集成部署分布式项目

    目录 一.Docker篇 1.Docker 概述 2.Docker 平台 3.我可以使用 Docker 做什么? 3.1.快速.一致地交付应用程序 3.2.响应式部署和扩展 3.3.在相同硬件上运行更 ...

  10. Docker新手入门详细介绍

    Docker新手入门详细介绍 Docker 起源于 dotCloud 公司的内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护,2013 ...

最新文章

  1. 按ctrl+shift 无法切换输入法了
  2. [原创]Zynq SDIO WIFI SotfAP调试
  3. TensorFlow + Docker + PyCharm
  4. 栈和队列(python代码)
  5. YTU 1009: University
  6. 解决 springboot + JPA + MySQL 表名全大写 出现 “表不存在” 问题(Table ‘XXX.xxx‘ doesn‘t exist)
  7. 华兴数控g71外圆循环编程_数控车床加工时的复合循环指令G70,G71,G72,G73
  8. 基于JAVA+Swing+MYSQL的工资管理系统
  9. 戴尔修复已存在12年之久的驱动漏洞,影响数百万个人电脑
  10. C语言有限域的构造,有限域(3)——多项式环的商环构造有限域
  11. SketchUp插件开发(一)简介
  12. 服务器背板fw信息,无纸化会议应用系统服务器 HG-FW02Z
  13. 缺少计算机所需的介质程序,UEFI安装Win8提示缺少所需的介质驱动程序怎么办?...
  14. (转)Qt添加windows开机自启动
  15. Rest-assured使用
  16. FREQCON OVERSPEED 1.2 368U4 204S
  17. 刘夏真的简历中国科学院计算机所,计算所智能计算机研究中心党支部正式成立...
  18. 模拟双色球彩彩票开奖和购买兑换。红色[1-33]选择6个不重复,蓝色[1-16]选择1个
  19. python求图形面积_如何使用python语言中的if语句实现求取图形面积
  20. DOTCPP:有关1148心得

热门文章

  1. 3D开发-AR技术方案
  2. 如何保护眼睛,可采用语音方式获取外界知识,并积极锻炼身体做到劳逸结合。
  3. 行列式与矩阵的初等变换总结
  4. DSPE;CAS:1069-79-0 ;二硬脂酰基磷脂酰乙醇胺;功能化磷脂
  5. html 播放微信amr音频文件,如何在微信中播放amr格式的文件?
  6. 计算机课睡觉检讨书,上课睡觉检讨书范文三篇
  7. XCode9插件安装,XCode9.2插件安装,XCode8和XCode9的Alcatraz安装
  8. 贝叶斯和EM算法简介
  9. 秋招(2014.9起)
  10. 小米手机相机的专业模式