Docker与Dragonfly详细多机部署
声明
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详细多机部署相关推荐
- jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...
本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...
- 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】
一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...
- Docker最新超详细教程——安装与部署
Docker最新超详细教程--安装与部署 安装Docker CentOS安装Docker 1. 卸载(可选) 2. 安装yum工具 3. 更新本地镜像源 4. 安装docker 5. 注意事项 关闭防 ...
- 使用Docker本机部署Django项目
前言 因为项目环境配置太麻烦了,所以还是选用了Docker这个技术作为一个部署的解决方案. 这里主要讲如何用Docker启动一个Django项目,所以一些高级的部署方式,比如说用nginx管理等都没有 ...
- Checkly如何借助Terraform实现零宕机部署
Checkly是一款验证API端点正确性和浏览器点击流的监控工具.Checkly创始人Tim Nolet分享了他们在AWS上基于Docker的基础设施中借助Terraform实现零宕机部署的经验. C ...
- 【狂神说Java】Docker最新超详细版教程通俗易懂 - 学习笔记
传送门:官方参考文档 | Docker Hub镜像仓库 | [狂神说Java]Docker视频教程 Docker概述 Docker 是一个便携的应用容器,基于 Go 语言开发的.它可以让开发者打包应用 ...
- Docker02 狂神Docker视频学习笔记 :【狂神说Java 哔哩哔哩】Docker最新超详细版教程通俗易懂
目录 0. 视频源 0. 学习网址 基础篇 1. Docker概述 1.1 Docker为什么出现? 1.2 Docker历史 1.3 Docker能干什么 2. Docker安装 2.1 Docke ...
- 【狂神说Java】Docker最新超详细版教程通俗易懂
Docker 入门 笔记整理来源 B站UP主狂神说Javahttps://space.bilibili.com/95256449/ Docker概述 Docker为什么出现? 一款产品: 开发–上线 ...
- Docker+Jenkins+Harbor+Rancher持续集成部署分布式项目
目录 一.Docker篇 1.Docker 概述 2.Docker 平台 3.我可以使用 Docker 做什么? 3.1.快速.一致地交付应用程序 3.2.响应式部署和扩展 3.3.在相同硬件上运行更 ...
- Docker新手入门详细介绍
Docker新手入门详细介绍 Docker 起源于 dotCloud 公司的内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护,2013 ...
最新文章
- 按ctrl+shift 无法切换输入法了
- [原创]Zynq SDIO WIFI SotfAP调试
- TensorFlow + Docker + PyCharm
- 栈和队列(python代码)
- YTU 1009: University
- 解决 springboot + JPA + MySQL 表名全大写 出现 “表不存在” 问题(Table ‘XXX.xxx‘ doesn‘t exist)
- 华兴数控g71外圆循环编程_数控车床加工时的复合循环指令G70,G71,G72,G73
- 基于JAVA+Swing+MYSQL的工资管理系统
- 戴尔修复已存在12年之久的驱动漏洞,影响数百万个人电脑
- C语言有限域的构造,有限域(3)——多项式环的商环构造有限域
- SketchUp插件开发(一)简介
- 服务器背板fw信息,无纸化会议应用系统服务器 HG-FW02Z
- 缺少计算机所需的介质程序,UEFI安装Win8提示缺少所需的介质驱动程序怎么办?...
- (转)Qt添加windows开机自启动
- Rest-assured使用
- FREQCON OVERSPEED 1.2 368U4 204S
- 刘夏真的简历中国科学院计算机所,计算所智能计算机研究中心党支部正式成立...
- 模拟双色球彩彩票开奖和购买兑换。红色[1-33]选择6个不重复,蓝色[1-16]选择1个
- python求图形面积_如何使用python语言中的if语句实现求取图形面积
- DOTCPP:有关1148心得