76、docker-harbor

news2024/11/15 22:42:41

一、docker-harbor 私有仓库部署和管理:

docker-harbor 私有仓库部署和管理:

harbor:开源的企业级的docker仓库软件。

仓库:私有仓库、公有仓库。私有仓库。

docker-harbor:是有图形化的,页面UI展示的一个工具。操作起来很直观。

harbor:每个组件都是由容器构建的,所以安装harbor必须有docker。

docker-compose一键编排,所以也是需要安装的。

1.1、harbor:

1、通过角色对权限进行控制,用户和仓库都是基于项目进行组织。

不同的用户在不同的项目中拥有不同的权限

2、镜像复制,每个仓库(之间可以通信)之间可以互相复制里面的

镜像

A <--------- B

NGINX NGINX

HTTP

MYSQL

3、UI界面可以对镜像进行删除,删除之后也会释放本机的空间。

4、图形化界面,可以用浏览器进行访问。

5、审计管理,所有对镜像仓库的操作都是记录,用于审计管理

1.2、harbor的组件:

主要的组件:

1、proxy:nginx的前端页面,nginx的配置中做个反向代理。浏览器的不同的请求转发到后端不同的容器中。

2、Registry:仓库,保存镜像,同时push/pull

3、core service:Harbor的核心功能,对用户进行授权,监测仓库内镜像的变化以及token,根据不同的权限给与不同的token,

token相等于缓存用户登录的信息,一次认证,下次不需要验证。

在这里插入图片描述

4、database:负责存储用户的权限,审计日志,docker镜像的分组信息

5、JOB services:镜像复制。

6、log collector:日志收集工具。

以上组件都是由容器运行,docker-compose 一键拉取部署。

二、实验

客户端:192.168.168.71 docker harbor

服务端:192.168.168.72 docker harbor docker-compose

服务端2:192.168.168.72 docker harbor docker-compose

1、部署服务端

2、客户端和服务端之间上传,下载镜像,权限控制

3、仓库之间的镜像复制

2.1、docker-harbor安装

[root@docker1 opt]# docker-compose -v   ##查看docker-compose版本
Docker Compose version v2.18.0
[root@docker1 opt]# rz -E
rz waiting to receive.
[root@docker1 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  html  mysql  mysql1  nginx  nhtml  php
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker1 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  mysql   nginx  php
harbor              html                                 mysql1  nhtml
[root@docker1 opt]# cd harbor/

[root@docker1 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

[root@docker1 harbor]# cp harbor.yml.tmpl harbor.yml

[root@docker1 harbor]# vim harbor.yml   ##修改harbor配置文件

  5 hostname: 192.168.168.71            ##harbor仓库的地址

 13 #https:                             ##注释https
 14   # https port for harbor, default is 443
 15  # port: 443                          ##注释https端口

 34 harbor_admin_password: 123456

[root@docker1 harbor]#  ./prepare            ##配置harbor所需要的配置文件和环境

[root@docker1 harbor]# pwd
/opt/harbor
[root@docker1 harbor]# ./install.sh           ##启动安装脚本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2、本机上传镜像

网页新建项目:

在这里插入图片描述

[root@docker1 harbor]# docker tag nginx:1.22 192.168.168.71/test1/nginx:v1   ##给本地镜像打标签,不打标签,上传不了harbor仓库

[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service           

ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --           containerd=/run/containerd/containerd.sock                        ##客户端指定到服务端,从服务端获取镜像

[root@docker1 harbor]# systemctl daemon-reload       ##改完配置文件进行重启
[root@docker1 harbor]# systemctl restart docker

[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71

在这里插入图片描述

对应解决:
[root@docker1 harbor]# ./install.sh               ##改完配置文件,重启docker后,进行初始化安装

[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71 ##登录仓库,进行上传和下载

[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v1             ##上传镜像nginx:v1

[root@docker1 harbor]# docker tag nginx:1.18 192.168.168.71/test1/nginx:v2   ##给镜像打标签
[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v2             ##上传镜像nginx:v2

在这里插入图片描述

2.3、本机从仓库下载镜像两种方法

在这里插入图片描述

在这里插入图片描述

[root@docker1 harbor]# docker pull 192.168.168.71/test1/nginx:v2

2.4、远程下载仓库镜像

[root@docker2 ~]# docker -v
Docker version 24.0.1, build 6802122
[root@docker2 ~]# docker-compose -v
Docker Compose version v2.18.0
[root@docker2 ~]# cd /opt/
[root@docker2 opt]# ls
containerd  es2                           kibana    test
es1         jenkins-2.396-1.1.noarch.rpm  logstash  test.yaml
[root@docker2 opt]# rz -E
rz waiting to receive.
[root@docker2 opt]# ls
containerd  harbor-offline-installer-v2.8.1.tgz  logstash
es1         jenkins-2.396-1.1.noarch.rpm         test
es2         kibana                               test.yaml
[root@docker2 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker2 opt]# ls
containerd  es2     harbor-offline-installer-v2.8.1.tgz  kibana    test
es1         harbor  jenkins-2.396-1.1.noarch.rpm         logstash  test.yaml
[root@docker2 opt]# cd harbor/
[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker2 harbor]# vim harbor.yml

5 hostname: 192.168.168.72

 13 #https:
 14   # https port for harbor, default is 443
 15  # port: 443

 34 harbor_admin_password: 123456


[root@docker2 harbor]#  vim /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --containerd=/run/containerd/containerd.sock                                         ##指向服务端

[root@docker2 harbor]# systemctl daemon-reload 
[root@docker2 harbor]# systemctl restart docker

[root@docker2 harbor]# docker login -u admin -p 123456 http://192.168.168.71       ##登录服务端的仓库
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@docker2 harbor]# docker images

[root@docker2 harbor]# docker pull 192.168.168.71/test1/nginx:v2    ##下载第一种

第二种一键拉取命令到命令行执行

在这里插入图片描述

[root@docker2 harbor]# docker tag centos:7 192.168.168.71/test1/centos:v1 ##给需要上传的进行打标签

[root@docker2 harbor]# docker images

[root@docker2 harbor]# docker push 192.168.168.71/test1/centos:v1 ##上传镜像到服务器的仓库中



再试一下退出仓库:

从服务器拉取镜像到本地

[root@docker1 harbor]# docker pull 192.168.168.71/test1/centos:v1
[root@docker1 harbor]# docker images

在这里插入图片描述

--------------------------远程下载镜像-----------------

2.5:创建用户

在这里插入图片描述

指定角色

在这里插入图片描述

2.6、角色:

1、添加用户,用户就是普通用户,私有用户是无法浏览的。

2、要浏览私有项目,必须要项目中添加成员,设定成员的角色。

2.7、角色的类型

  • 受限访客:只能看,不能上传,也不能下载,也没有其他权限。

  • 访客:拥有只读权限,可以拉取镜像,不能上传,也无法删除镜像。

  • 开发者:可以读写,但是没有删除权限。

  • 维护人员:既有读写,也可以对项目的权限进行修改

  • 项目管理员:读写,修改,删除。

##指定自定义用户登录仓库

docker login -u 用户名 -p 用户密码 http://192.168.168.71

[root@docker1 harbor]# docker login -u liyang -p Liyang123 http://192.168.168.71
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
docker logout   ##退出登录

2.8、基于docker,安装docker-compose,安装docker-harbor

----------------------------安装docker-compose-----------------------------
[root@docker3 opt]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@docker3 opt]# chmod 777 /usr/local/bin/docker-compose 
[root@docker3 opt]# docker-compose --version
Docker Compose version v2.18.0
----------------------安装docker-harbor------------------------
[root@docker3 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker3 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  mysql   nginx  php
harbor              html                                 mysql1  nhtml
[root@docker3 opt]# cd harbor/

[root@docker3 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

[root@docker3 harbor]# cp harbor.yml.tmpl harbor.yml

[root@docker3 harbor]# vim harbor.yml

  5 hostname: 192.168.168.73

 13 #https:
 14   # https port for harbor, default is 443
 15  # port: 443

 34 harbor_admin_password: 123456

[root@docker3 harbor]#  ./prepare

[root@docker3 harbor]# pwd
/opt/harbor
[root@docker3 harbor]# ./install.sh 

2.9、实现192.168.168.71/harbor仓库备份到192.168.168.73/harbor仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

vim /etc/docker/daemon.json ##修改docker源

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

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

相关文章

1.XV6环境配置

安装虚拟机 这个就不多说了&#xff0c;搞一台Ubuntu虚拟机即可&#xff0c;最好是通过vscode 用ssh远程连接进行实验会比较方便&#xff0c;具体怎么做可参考我这篇博客&#xff1a; VsCode配置SSH连接远程服务器&#xff08;手把手&#xff0c;学不会打我&#xff09;_vsco…

【Hot100】LeetCode—148. 排序链表

目录 1- 思路归并 2- 实现⭐148. 排序链表——题解思路 3- ACM 实现 原题连接&#xff1a;148. 排序链表 1- 思路 归并 1- 先求解链表的长度&#xff0c;求出长度后利用 subLen 1 开始归并 定义虚拟头结点 dummyHead &#xff0c;便于处理头结点 2- 归并逻辑 for(int subLen…

nacos 使用 docker 单机部署连接 MySQL 数据库并开启鉴权

文章目录 本地部署的配置启用鉴权(未验证) docker部署的配置修改docker 镜像源启用鉴权&#xff0c;必须添加如下环境变量如何生成鉴权的密钥 完整环境变量docker启动命令 本地部署的配置 文件结构 application.properties #配置文件 mysql-schema.sql …

[Linux#40][线程] 线程控制 | 多线程

内核中有没有很明确的线程概念呢&#xff1f;没有的。有的是轻量级进程的概念 不会给我直接提供线程的系统调用&#xff0c;只会给我们提供轻量级进程的系统调用&#xff0c;但是我们用户&#xff0c;需要线程的接口&#xff01; 所以 Linux 开发者提供了 pthread 线程库--应用…

成为创作者的第1024天:成长与技术积累的旅程

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 今天是我成为创作者的第1024天。回顾这段时间&#xff0c;虽然日常的忙碌充斥着生活…

roles(角色)

创建目录&#xff0c;编写剧本下载nginx: 184 mkdir /etc/ansible/playbook 185 vim /etc/ansible/playbook/nginx.yml --- - hosts: groupremote_user: roottasks:- name: 卸载httpdyum: namehttpd stateabsent- name: 安装nginxyum: …

【MySQL 09】复合查询 (带思维导图)

文章目录 &#x1f308; 一、准备工作&#x1f308; 二、多表查询⭐ 1. 多表笛卡尔积⭐ 2. 多表查询示例 &#x1f308; 三、自连接&#x1f308; 四、子查询⭐ 1. 标量子查询⭐ 2. 多行子查询 (需要插入其他博客的链接)⭐ 3. 多列子查询 (需要插入其他博客的链接)⭐ 4. 在 fro…

小米SU7销量超特斯拉,新车明年上半年发布

小米 SU7&#xff0c;一款国内新能源车品牌纯血新势力旗下首款轿车&#xff0c;上市短短 4 个月卖出超 4 万台&#xff0c;月均销量过万。 该说不说&#xff0c;这放在整个新能源汽车工业史上也足以称得上是一件小刀喇拍屁股&#xff0c;让人开了眼的事儿。 就在本月初&#x…

大模型在企业数智化转型中可以做哪些事情?

在数字化浪潮的推动下&#xff0c;企业数智化转型已成为不可逆转的趋势。作为人工智能技术的集大成者&#xff0c;大模型以其强大的数据处理能力、深度学习能力及广泛的应用场景&#xff0c;正逐步成为企业数智化转型的核心驱动力。 大模型&#xff1a;智能时代的基石 大模型…

Error: ReferenceError: ReadableStream is not defined

midway项目在build完&#xff0c;docker启动时&#xff0c;莫名地报错Error: ReferenceError: ReadableStream is not defined&#xff0c;之前一直好好地&#xff0c;初时以为是新加的代码引起&#xff0c;后来排除了。 报错如下&#xff1a; 2024-08-20 11:57:51.446 ERROR …

【教学类-76-01】20240820书包01(图案最大化)

背景需求 通义万相生成图片&#xff0c;把图案最大化的方法&#xff08;切掉白边&#xff09; 【教学类-75-01】20240817“通义万相图片最大化透明png”的修图流程-CSDN博客文章浏览阅读1.6k次&#xff0c;点赞56次&#xff0c;收藏17次。【教学类-75-01】20240817“通义万相…

Aseembly(八)-汇编语言编写程序

前言 在该系列的第六篇文章我们主要讲述了:关于栈的寄存器:SS和SP的问题 来回一下: 对于栈指针来说,栈在被开辟的时候,首先要通过SS指针去找到开辟栈的地址空间的首地址,随后,SP指针指向该栈空间的末尾的下一个空间处.当执行push指令时,sp会-2 随后将目标压入栈中 当执行pop指…

volta引发的血案

什么是volta volta用于做项目级别的node版本控制&#xff0c;当手头上的项目有多个时&#xff0c;且node版本可能还不一样&#xff0c;我们需要不断切换node版本。使用volta可以很好的解决这个问题。只需要安装volta&#xff0c;然后在下面的package.json中配置好node版本即可…

鸿蒙HarmonOS实战开发: CMake脚本编写构建NDK工程

NDK工程构建 HarmonyOS NDK默认使用CMake作为构建系统&#xff0c;随包提供了符合HarmonyOS工具链的基础配置文件ohos.toolchain.cmake&#xff0c;用于预定义CMake变量来简化开发者配置。 常用的NDK工程构建方式有&#xff1a; 从源码构建 源码构建也有不同方式&#xff1a;…

机器学习在智能复合材料中的应用与实践

在人工智能与复合材料技术融合的背景下&#xff0c;复合材料的研究和应用正迅速发展&#xff0c;创新解决方 案层出不穷。从复合材料性能的精确预测到复杂材料结构的智能设计&#xff0c;从数据驱动的材料结构优 化到多尺度分析&#xff0c;人工智能技术正以其强大的数据处理能…

深度学习设计模式之策略模式

文章目录 前言一、介绍二、特点三、详细介绍1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 策略模式定义一系列算法&#xff0c;封装每个算法&#xff0c;并使它们可以互换。 一、介绍 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&…

Linux:网络基础概念

网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 局域网 LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 广域网 WAN: 将远隔千里的计算机都连在一起; 所谓 "局域网" 和 "广域网" 只是一个相对的概念. 比如…

【C++ 第十四章】红黑树

前言&#xff1a; 学习本章&#xff0c;需要先学习 AVL树的 旋转&#xff0c;因为 红黑树也需要旋转调整来平衡&#xff0c;下面讲解将不赘述 旋转的原理和操作 红黑树的旋转 和 AVL树的旋转 唯一不同的是&#xff1a;旋转的判断使用逻辑 AVL树的旋转 可以通过 平衡因子 判断…

关于c++ grpc 和 c# grpc 通信的问题 以及 grpc 认证问题

一、c 和 c# 通信 c# 端服务器 如果域名 输入的是 https &#xff0c;则 c 端需要匹配使用&#xff0c;也就是c 端需要进行安全认证。如果是http 则c 端不需要认证&#xff08;基于c#的grpc 未 通信成功&#xff09; 参考如下网址可以写一个简单的 .net grpc服务器 &#xff08…

基于java的综合小区管理系统论文.doc

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统综合小区管理系统信息管理难度大&#xff0c;容错率低&am…