docker安装部署dragonfly2镜像加速服务
Dragonfly安装部署文档
Dragonfly 作为龙蜥社区的镜像加速标准解决方案,是一款基于 P2P 的智能镜像和文件分发工具。它旨在提高大规模文件传输的效率和速率,最大限度地利用网络带宽。在应用分发、缓存分发、日志分发和镜像分发等领域被大规模使用。
现阶段 Dragonfly 基于 Dragonfly1.x 演进而来,在保持 Dragonfly1.x 原有核心能力的基础上,Dragonfly 在系统架构设计、产品能力、使用场景等几大方向上进行了全面升级。
Dragonfly 架构主要分为三部分 Manager、Scheduler、Seed Peer 以及 Peer 各司其职组成 P2P 下载网络,Dfdaemon 可以作为 Seed Peer 和 Peer。详细内容可以参考架构文档(链接见文末),下面是各模块功能:
Manager:维护各 P2P 集群的关联关系、动态配置管理、用户态以及权限管理等功能。也包含了前端控制台,方便用户进行可视化操作集群;
Scheduler:为下载节点选择最优下载父节点。异常情况控制 Dfdaemon 回源。
Peer:通过 Dfdaemon 部署,基于 C/S 架构提供 dfget 命令行下载工具,以及 dfget daemon 运行守护进程,提供任务下载能力。
Dragonfly github地址:https://github.com/dragonflyoss/Dragonfly2
Dragonfly技术架构图
本文介绍如何以docker的方式部署Dragonfly,所需环境:linux,docker,3台机器部署如下节点
192.168.197.140 部署manager、scheduler、seed peer
192.168.197.151 部署dfdaemon
192.168.197.152 部署dfdaemon
以上三台机器都准备有docker环境,且防火墙关闭
docker脚本准备
官方文档准备的是docker-compose运行环境的脚本,且是将所有服务部署在一台机器上,现在需要去github上找到脚本,转为docker run命令脚本来分开部署。
脚本位置:https://github.com/dragonflyoss/Dragonfly2/tree/main/deploy/docker-compose
在192.168.197.140上部署manager、scheduler等
下载manager、scheduler等配置文件
从github deploy/docker-compose/temlate/ 下载配置文件,并重命名
[root@harbor ~]# mkdir -p /etc/dragonfly/config
[root@harbor config]# cd /etc/dragonfly/config
[root@harbor config]# mv manager.template.yaml /etc/dragonfly/config/manager.yaml
[root@harbor config]# mv scheduler.template.yaml /etc/dragonfly/config/scheduler.yaml
[root@harbor config]# mv seed-peer.template.yaml /etc/dragonfly/config/seed-peer.yaml
docker启动redis、mysql
# 启动docker
[root@harbor config]# docker run -d --name dragonfly-redis --restart=always -p 6379:6379 redis:6-alpine --requirepass "dragonfly"
# 启动mysql
[root@harbor config]# docker run -d --name dragonfly-mysql --restart=always -p 3306:3306 --env MARIADB_USER="dragonfly" --env MARIADB_PASSWORD="dragonfly" --env MARIADB_DATABASE="manager" --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD="yes" mariadb:10.6
# 检查redis、mysql等容器是否成功启动
[root@harbor config]# docker ps | grep redis
[root@harbor config]# docker ps | grep mysql
1、在启动redis和mysql前请确保6379和3306端口没被占用
2、如果采用现有的mysql,则需要初始化mysql数据库、表,否则后续manager无法启动
docker 启动manager
编辑manager.yaml配置,正确填写redis、mysql相关配置,另外部署manager console会占用8080端口,确保8080端口没被占用或者修改rest的8080端口
[root@harbor config]# vim /etc/dragonfly/config/manager.yaml
[root@harbor config]# docker run -d --name dragonfly-manager --restart=always --net=host -v /tmp/log/dragonfly:/var/log/dragonfly -v /etc/dragonfly/config/manager.yaml:/etc/dragonfly/manager.yaml dragonflyoss/manager:latest
# 检查manager是否成功部署
[root@harbor config]# docker ps | grep manager
# 查看日志
[root@harbor config]# docker logs <manager_container_id>
manager部署成功后,访问http://192.168.197.140:8080 可以登录console 账号密码:root/dragonfly,此步骤需要关闭防火墙
docker启动scheduler
编辑scheduler.yaml配置,正确配置redis、manager等配置,确保相关端口没被占用
[root@harbor config]# vim /etc/dragonfly/config/scheduler.yaml
# 启动scheduler
[root@harbor config]# docker run -d --name dragonfly-scheduler --restart=always --net=host -v /tmp/log/dragonfly:/var/log/dragonfly -v /etc/dragonfly/config/scheduler.yaml:/etc/dragonfly/scheduler.yaml dragonflyoss/scheduler:latest
# 检查scheduler是否正确启动
[root@harbor config]# docker ps | grep scheduler
# 查看日志
[root@harbor config]# docker logs <scheduler_container_id>
docker启动seed-peer
编辑seed-peer.yaml配置,正确配置manager等配置,确保相关端口没被占用
[root@harbor config]# vim /etc/dragonfly/config/seed-peer.yaml
# 启动seed-peer
[root@harbor config]# docker run -d --name dragonfly-seed-peer --restart=always --net=host -v /tmp/log/dragonfly:/var/log/dragonfly -v /etc/dragonfly/config/seed-peer.yaml:/etc/dragonfly/dfget.yaml dragonflyoss/dfdaemon:latest
# 检查seed-peer是否正确启动
[root@harbor config]# docker ps | grep seed-peer
# 查看日志
[root@harbor config]# docker logs <seed-peer_container_id>
以上操作都是192.168.197.140节点上完成
接下来在其他节点配置peer,即dfdaemon
以下操作分别在192.168.197.151、192.168.197.152上执行
下载dfmaemon配置
从github deploy/docker-compose/temlate/ 下载配置文件,并重命名
[root@harbor ~]# mkdir -p /etc/dragonfly/config
[root@harbor config]# cd /etc/dragonfly/config
[root@harbor config]# mv dfget.template.yaml /etc/dragonfly/config/dfget.yaml
docker启动dfmaemon
编辑dfget.yaml配置,正确填写manager和host相关的配置以及确保相关端口没被占用
[root@node1 config]# vim /etc/dragonfly/config/dfget.yaml
# 启动dfdaemon
[root@harbor config]# docker run -d --name dragonfly-dfdaemon --restart=always --net=host -v /tmp/log/dragonfly:/var/log/dragonfly -v /etc/dragonfly/config/dfget.yaml:/etc/dragonfly/dfget.yaml dragonflyoss/dfdaemon:latest
# 检查是否正确启动
[root@harbor config]# docker ps | grep dfdaemon
验证
验证从dfmaemon节点拉取镜像是否经过了dragonfly,编辑/etc/docker/daemon.json文件新增如下配置
[root@node1 config]# vim /etc/docker/daemon.json
{"registry-mirrors": ["http://127.0.0.1:65001"]
}
重启docker服务
[root@node1 config]# systemctl restart docker
拉取镜像
[root@node1 config]# docker pull nginx:latest
# 查看日志
[root@node1 config]# tail -f /tmp/log/dragonfly/daemon/core.log -n 500
如果有类似如下格式的日志,则证明是通过dragonfly来拉取镜像的
{"level":"debug","ts":"2023-02-10 08:00:42.529","caller":"transport/transport.go:202","msg":"round trip directly, method: GET, url: https://index.docker.io/v2/library/nginx/manifests/latest"}
{"level":"debug","ts":"2023-02-10 08:00:43.767","caller":"transport/transport.go:202","msg":"round trip directly, method: GET, url: https://index.docker.io/v2/library/nginx/manifests/sha256:7f797701ded5055676d656f11071f84e2888548a2e7ed12a4977c28ef6114b17"}
{"level":"debug","ts":"2023-02-10 08:00:44.800","caller":"transport/transport.go:198","msg":"round trip with dragonfly: https://index.docker.io/v2/library/nginx/blobs/sha256:3f8a00f137a0d2c8a2163a09901e28e2471999fde4efc2f9570b91f1c30acf94"
docker安装部署dragonfly2镜像加速服务相关推荐
- centos 7 Docker 安装及配置镜像加速
centos 7 Docker 安装及配置镜像加速 文章目录 centos 7 Docker 安装及配置镜像加速 Docker 版本 基于 `CentOS `安装 `Docker` 引擎 系统要求 卸 ...
- saiku docker配置部署_【安装教程】01 Gitea Docker 安装部署 - 【SkywenCode】技术团队基...
在2016年-2019年,SkywenCode技术团队使用码云Gitee 作为线上代码库管理,基于敏捷开发和持续构建的思路,我们整体基础建设以Drone / Jenkins + Docker 的方式构 ...
- ITOP-1 Docker安装部署itop
ITOP-1 Docker安装部署itop 一.Docker安装部署 1.下载docker源 2.yum安装docker,并运行 3.配置docker镜像加速地址 二.ITOP部署 1.登录[dock ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需 ...
- Docker安装部署及使用
Docker安装部署及使用 实验内容 安装Docker. 创建自己的第一个容器 容器使用,查看.启动.进入.停止.删除对应容器. 容器安装MySQL. Experimental environment ...
- Docker安装部署(详细版)
文章目录 Docker 安装部署 简介 安装 调优 目录迁移 日志调优 磁盘优化 业务命令 docker 构建容器时推荐追加的脚本 问题 Docker 安装部署 简介 Docker 是一个开源的应用容 ...
- Docker安装部署超详细教程(2021版)
一.前提条件 1.1. 内核 Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行.但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Wind ...
- Docker——安装部署
前言 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安 ...
- 【Docker安装部署FastDFS详细过程】
0.国人之光~FastDFS 分布式文件存储的由来: 在我们的项目中有很多需要存储的内容出现,比如图片,视频,文件等等,在早期的时候用户量不大,产生的文件也不是很多,这时我们可以把文件和服务程序放在一 ...
最新文章
- bootstrap之双日历时间段选择控件—daterangepicker(汉化版)
- 网站开发建设过程中所涉及到的技术问题应当如何面对?
- 51nod 1127 最短的包含字符串(尺取法)
- PAT-Mars number
- php curlopt_postfields,PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别 - CSDN博客
- Linux下如何让普通用户具备sudo执行权限(普通用户提权)
- oracle 循环select查询的结构集,执行insert到指定表保存
- CentOS 7下编译FreeSWITCH 1.6
- Flash遮罩之光芒四射、佛光普照
- Binder机制详解
- IDEA 创建文件类型与预期文件类型不符时,如何更改
- win10系统设置还原点,系统永不奔溃
- 计算机显示器是指什么,电脑的显示器是什么 选购显示器的小技巧
- java刻画三角形和梯形和圆形_三角形、梯形和圆形的类封装
- 小米6线刷兼救砖_解账户锁_纯净刷机包_教程
- 【altium designer】画原理图
- mongoDb内嵌文档的数据查询
- 华硕顽石第四代FL5900u拆机换电池
- 看顶级渣男如何邀约100个女朋友(一)
- reason:The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zo