Docker Harbor 2.3.4 集群 双主复制高可用镜像仓库

在这里插入图片描述
在这里插入图片描述

下面操作大部分是双节点同时执行一样的命令,不同的地方我会进行标注和特殊说明

文章目录

          • 一、环境准备
            • 1. 环境要求
            • 2. 节点总览
            • 3. 安装docker-compose
          • 二、安装harbor
            • 2.1. 下载
            • 2.2. 解压
            • 2.3. 调整配置
            • 2.4. 安装 harbor
            • 2.5. 效果验证
          • 三、Docker开启远程API
            • 3.1. 修改配置
            • 3.2. 支持http
            • 3.3. 重新启动Docker服务
            • 3.4. 防火墙管理
            • 3.5. 重新启动
            • 3.6. 监控状态
          • 四、测试推送镜像
            • 4.1. 新建项目
            • 4.2. 登录harbor仓库
            • 4.3. tag镜像
            • 4.4. 上传镜像到私有仓库
            • 4.5. 登录
            • 4.6. 验证镜像
          • 五、拉取镜像
            • 5.1. 登录
            • 5.2. 拉取镜像
          • 六、双主复制
            • 6.1. 登录双节点
            • 6.2. 新建目标
            • 6.3. 新建复制规则
            • 6.4. 规则效果
            • 6.5. 镜像同步验证
            • 6.6. 新建目标
            • 6.7. 新建规则
            • 6.8. 规则效果
            • 6.9. 总结
          • 七、基本操作
            • 7.1. 下线
            • 7.2. 监控状态
            • 7.3. 重新部署上线

一、环境准备
1. 环境要求

环境docker版本17.06.0+

软件版本
系统版本centOS 7.6.1810
docker20.10.11
docker-compose1.23.2
jdk1.8.0_301
2. 节点总览
ip端口用途
192.168.92.12980harbor节点1
192.168.92.13080harbor节点2
3. 安装docker-compose

服务器有网络安装方式:
docker-compose是docker用来管理容器的一个工具,harbor的运行基于docker-compose。

  • 安装docker-compose:
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
  • 如果github安装太慢,可使用下面的高速地址安装:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 服务器无网络时安装方式:
    先下载好(下载地址:https://github.com/docker/compose/releases/)后,上传至服务器centos的/usr/local/bin目录下

  • 赋予权限
    不管使用哪种方式下载,上传到指定目录后都需要对文件进行赋权:

chmod +x /usr/local/bin/docker-compose
二、安装harbor
2.1. 下载

下载安装包:
 官网地址:https://github.com/vmware/harbor/releases/
 
下载速度慢可用这个地址:http://harbor.orientsoft.cn/
 在这里插入图片描述

cd /app
wget https://github.91chi.fun//https://github.com//goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz
2.2. 解压
cd /app
tar -zxvf harbor-offline-installer-v2.3.4.tgz
2.3. 调整配置

特殊说明:如果搭建的单机环境的话,配置服务器ip即可,如果集群环境,配置各自的ip
修改harbor配置文件
从模板harbor.yml.tmpl拷贝一份文件命名harbor.yml

cp /app/harbor/harbor.yml.tmpl /app/harbor/harbor.yml
vim /app/harbor/harbor.yml

PS: 这里跟以前2.x以下的版本不一样,没有了harbor.cfg文件,我们需要手动复制harbor.yml.tmpl在做修改即可修改配置harbor.yml文件如下:

PS: harbor作为私有仓库作用在公司内网,一般都是信任关系,没多大必要做https,使用http即可!
所以 把https相关的已经注释掉

  • 192.168.92.129 节点
hostname: 192.168.92.129

在这里插入图片描述

harbor默认存储目录是/data,但是我服务器存储大空间在/app磁盘,因此,调整了目录存储路径

在这里插入图片描述

集群环境,配置要在配置一份,证书都用自己的,不能复制给另一台使用

  • 192.168.92.130 节点
    在这里插入图片描述
    在这里插入图片描述
2.4. 安装 harbor

运行install.sh文件安装harbor

cd /app/harbor/
ll
./prepare

在这里插入图片描述

./install.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.5. 效果验证

进入登录页面:
http://192.168.92.129
https://192.168.92.130/
默认用户名:

admin

密码:

Harbor12345
  • 登录页面
    在这里插入图片描述

在这里插入图片描述

三、Docker开启远程API
3.1. 修改配置

用vim编辑器修改docker.service文件

vim /usr/lib/systemd/system/docker.service

需要修改的部分:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改后的部分:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

在这里插入图片描述

3.2. 支持http

让Docker支持http上传镜像(docker对于私有仓库默认都是使用https,不信任http)

  • 192.168.92.129节点操作:
echo '{ "insecure-registries":["192.168.92.129"] }' > /etc/docker/daemon.json
  • 192.168.92.130节点操作:
echo '{ "insecure-registries":["192.168.92.130"] }' > /etc/docker/daemon.json

如果端口号不是 80;加上端口号:

echo '{ "insecure-registries":["192.168.92.129:9080"] }' > /etc/docker/daemon.json

or

echo '{ "insecure-registries":["192.168.92.130:9080"] }' > /etc/docker/daemon.json
3.3. 重新启动Docker服务
systemctl daemon-reload
systemctl restart docker
3.4. 防火墙管理

开启防火墙的Docker构建端口(需要的话)
企业中需要开启防火墙

firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
3.5. 重新启动
cd /app/harbor
docker-compose down -v
docker-compose up -d
3.6. 监控状态

查看harbor的运行状态

cd /app/harbor
docker-compose ps

在这里插入图片描述

四、测试推送镜像

这第四测试推送镜像,都在192.168.92.129节点操作

4.1. 新建项目

删除默认的项目
在这里插入图片描述
新建名称为k8s项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2. 登录harbor仓库
docker login -u admin -p Harbor12345 192.168.92.129

在这里插入图片描述

4.3. tag镜像
docker tag nginx:latest 192.168.92.129/k8s/nginx:v1.0

在这里插入图片描述

4.4. 上传镜像到私有仓库
docker push 192.168.92.129/k8s/nginx:v1.0 

在这里插入图片描述
在这里插入图片描述

4.5. 登录

进入项目内部
在这里插入图片描述

4.6. 验证镜像

验证上传的镜像
在这里插入图片描述
在这里插入图片描述

  • 如果遇到一下问题(没有就跳过):

unauthorized: unauthorized to access repository: ces/ces-auth, action: push: unauthorized to access repository: ces/ces-auth, action: push

所有操作多对的,那可能是端口模式默认的 80/443

  • 解决方案
    加端口(8080)
docker login -u admin -p Harbor12345 192.168.92.129:8080docker push 192.168.92.129:8080/mynginx/nginx:v1.0 
五、拉取镜像

这第四测试推送镜像,都在192.168.92.130节点操作

5.1. 登录
docker login -u admin -p Harbor12345 192.168.92.129

在这里插入图片描述

vim /etc/docker/daemon.json

{ "insecure-registries":["192.168.92.129","192.168.92.130"] }

说明:这里可以配置nginx的服务器IP地址,或者nginx的本地域名,如果配置本地域名的话,需要在hosts为你就按中配置域名

  • 重新启动Docker服务
systemctl daemon-reload
systemctl restart docker
  • 重新启动
cd /app/harbor
docker-compose down -v
docker-compose up -d
  • 监控状态
    查看harbor的运行状态
cd /app/harbor
docker-compose ps
5.2. 拉取镜像
docker pull 192.168.92.129/k8s/nginx:v1.0

在这里插入图片描述

六、双主复制
6.1. 登录双节点

在这里插入图片描述
在这里插入图片描述

6.2. 新建目标

129操作

在这里插入图片描述
填写信息如下:

130
同步到130节点
http://192.168.92.130
admin
Harbor12345

填写完毕后,测试连接是否成功
在这里插入图片描述
在这里插入图片描述

6.3. 新建复制规则

在这里插入图片描述
重要的是选择目标

to130

在这里插入图片描述
在这里插入图片描述

6.4. 规则效果

在这里插入图片描述

6.5. 镜像同步验证

回到130节点,刷新浏览器,就会多一个k8s的项目

在这里插入图片描述

6.6. 新建目标

在130节点新建一个目标
在这里插入图片描述
填写信息如下:

129
同步到129节点
http://192.168.92.129
admin
Harbor12345

在这里插入图片描述
在这里插入图片描述

6.7. 新建规则

在这里插入图片描述
重要的是选择目标

to129

在这里插入图片描述

6.8. 规则效果

在这里插入图片描述

6.9. 总结

如果129服务器节点如果存在相同的项目和镜像,不会发生真正的传输,但是会比对镜像的签名,如果一样就不会再做额外的工作了。

七、基本操作
7.1. 下线
cd /app/harbor
docker-compose down -v

在这里插入图片描述

7.2. 监控状态

查看harbor的运行状态

cd /app/harbor
docker-compose ps

在这里插入图片描述

7.3. 重新部署上线
docker-compose up -d

or

docker-compose restart

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用Chrome读懂网站监测Cookie

作者 | 朱顺意责编 | 李雪敬出品 | CSDN云计算(ID:CSDNcloud)网站监测工具用于标识用户的 Cookie 分为第1方 Cookie 和第3方 Cookie,这两者本质上没有什么区别,只是身份不同。Cookie 有 Domain 属性,当 Coo…

DataWorks百问百答01:数据同步该用什么资源组

引子 很多用户在使用数据集成建立同步任务时,往往都会困惑一个设置,即“资源组设置”。 大家常有的疑问是“资源组是用来做什么的?跟网络之间什么关系?我该选择那种资源组?” 下面本文给您一个简要的介绍。 什么是资源…

在阿里,40岁的奋斗姿势

在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神…

nginx配置多个conf文件

今天整理了下,在centos 7.6 系统下怎么配置多个conf文件。 step 1:在nginx.conf文件所在目录新建conf.d目录,即mkdir conf.d,为确保权限能够访问到 chmod 777 conf.dstep 2:编辑nginx.conf文件,内容为: #user nobody…

CPU有个禁区,内核权限也无法进入!

来源 | 编程技术宇宙封图 | CSDN 下载自视觉中国神秘项目我是CPU一号车间的阿Q,是的,我又来了。最近一段时间,我几次下班约隔壁二号车间虎子,他都推脱没有时间,不过也没看见他在忙个啥。前几天,我又去找他&…

Vue---淘宝镜像cnpm---安装vue-cli

1. 淘宝镜像命令 npm install -g cnpm --registryhttps://registry.npm.taobao.org 2. 安装vue-cli脚手架 npm install -g vue/cli 3.vue-cli脚手架更新 npm i -g vue/cli 4. 查看当前vue-cli版本号 vue -V

防删库实用指南 | 只需一步,快速召回被误删的表

数据库的一些非常不错的企业级功能都是“养兵千日,用兵一时”,比如Oracle 10g中的回收站(Recycle Bin)功能,可以在特殊情况下发挥特种兵的功能,比如当你删除一个表空间、一个用户(Schema)时&…

智能化中的控制与自动化中的控制不同

智能化中的控制相对于自动化中的控制更加灵活、智能、综合和学习能力强。智能化控制系统能够根据实际情况进行自主决策和优化,适用范围更广,效果更好。 首先,智能化控制系统能够根据外部环境的变化和实时数据的反馈来自主调整和优化控制策略&…

Flink on Zeppelin (4) - 机器学习篇

今天我来讲下如何在 Zeppelin 里做机器学习。机器学习的重要性我就不多说了,我们直奔主题。 Flink 在机器学习这个领域发力较晚,社区版没有一个完整的机器学习算法库可以用,Alink[1]是目前 Flink 生态圈相对比较完整的机器学习算法库&#x…

docker yum 安装

文章目录一、安装docker1. 卸载旧版本2. 需要的安装包3. 设置镜像仓库4. yum更新软件包索引5. 安装docker-ce6. 启动docker7. 查看版本二、卸载docker2.1. 卸载docker2.2. 删除docker资源三、指定版本安装docker一、安装docker https://docs.docker.com/engine/install/centos…

解决Vue3创建项目后的Error: Cannot find module ‘vue-loader-v16/package.json‘问题

1. 卸载vue-loader-v16依赖 npm uninstall vue-loader-v16 2.使用cnpm安装vue-loader-v16依赖 cnpm i vue-loader-v16 最后npm run serve 重新启动项目

五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰

“基于OSS在弹性扩容、跨省容灾、多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理、文档预览的并发处理量上有了10倍速的提升。”——钉…

知乎高赞:一行代码凭什么躺普通程序员的10年工资?

笔者这两天闲逛知乎,看到了这个帖子:匿名答题,发表于2014年,此外没有留下任何多余信息。2年躺赚200万,相当于普通程序员10年的工资。没想到Pyhon这么强大,怪不得有人说“除了不会生孩子,Python什…

第九弹 - 脚本模式与参数视图

MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高…

Vue3---安装Element-Plus组件库

*** 全局安装Element-Plus 1. npm安装 npm install element-plus --save 2. 在main.js中引入以下内容 import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vue const app createApp(App…

在家“隔离”这1个月,阿里云视频云这些工程师都经历了什么?

战"疫”当前,没有谁会置身事外。从1月底开始,一场全民疫情阻击战拉开帷幕,企业停工、学校停课、商场停业,城市街道分外冷清,相反的是,无法出门的数亿网民却在互联网上掀起了一阵不小的流量热潮。距离2…

CSDN的常用文本设置(字体大小红色)

<font face"黑体" color#FF0000 size4> **在这里放入需要修改颜色的语句**</font>在这里放入需要修改颜色的语句

让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了

作者 | 伍杏玲出品 | CSDN&#xff08;ID:CSDNnews&#xff09;据启明星辰发布的《2019~2020网络安全态势观察报告》显示&#xff0c;在过去一年多时间里&#xff0c;勒索攻击由 2014 年的广泛无目的的传播阶段到2017 年 WannaCry 带来的大规模自动化传播阶段&#xff0c;如今已…

Vue3---vue组件库

1.vue-form-making 基于 vue 和 element-ui 实现的表单设计器&#xff0c;使用了最新的前端技术栈&#xff0c;内置了 i18n 国际化解决方案&#xff0c;可以让表单开发简单而高效。 项目地址&#xff1a;https://gitee.com/gavinzhulei/vue-form-making 2.viewUI ViewUI 是…

docker mysql 日志在哪里_docker容器启动后日志在哪里

docker容器启动后日志在哪里&#xff1f; docker启动后日志会在以下位置 /var/lib/docker/containers/容器ID/容器ID-json.log 也可以使用以下命令查看日志&#xff1a; docker logs 容器ID使用docker-compose可以通过配置把日志记录到本地文件中 实战&#xff0c;演示以mys…