docker私有仓库部署与管理

一、搭建本地公有仓库

  1.1 首先下载registry镜像

docker pull registry

  1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务

vim /etc/docker/daemon.json

  1.3 运行registry容器

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always--name registry registry:latest

  1.4 下载centos镜像

docker run centos:7 /usr/bin/bash -c ls /

  1.5 为镜像打上标签并上传到仓库

docker tag centos:7 当前IP地址:5000/centos:v1

docker push 当前IP地址:5000/centos:v1

  1.6 列出私有仓库的所有镜像以及centos镜像有哪些tag

curl http://当前IP地址:5000/v2/_catalog

curl http://当前IP地址:5000/v2/centos/tags/list

  1.7 删除centos镜像

docker images

docker rmi centos:7

docker rmi 容器ID号

    1.8 查看所有镜像查看centos是否被删除

docker images

   1.9 从仓库下载centos镜像

docker pull 192.168.10.10:5000/centos:v1

docker images


二、harbor简介

  2.1 harbor定义

    Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务

    Harbor以 Docker 公司开源的Registry为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

  Harbor的每个组件都是以docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml

  2.2 harbor特性

  1. 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
  2. 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
  3. 支持LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
  4. 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
  5. 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
  6. 审计管理:所有针对镜 像仓库的操作都可以被记录追溯,用于审计管理。
  7. 支持RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
  8. Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

  2.3 harbor构成

    Harbor 在架构上主要有 ProxyRegistryCore servicesDatabase(Harbor-db)、Log collector(Harbor-log)、Job services六个组件。

  • proxy反向代理:通过一个前置的发现代理统一接收浏览器、docker客户端的请求,并且请求转发给后端不同的服务
  • registry:负责存储docker镜像,处理docker的pull/push命令来做上传和下载
  • core services:harbor的核心功能包括:
    • ui:提供图像界面

    • webhook:网站一些服务功能(通知机制)

    • token(令牌):提供身份验证服务

  • log collector:负责日志(其他的组件日志、上传、下载、用户、访问)收集,以供后期进行分析和健康检查
  • database:提供数据库服务,主要记录数据库镜像的元信息以及用户的身份信息
  • job services:用于镜像复制,本地镜像可以被同步到远程harbor实例上

    2.3.1 认证三种方式

  • 令牌
  • 用户密码
  • ssl

  2.4 总结

    Harbor 的每个组件都是以Docker容器的形式构建的,因此,使用Docker Compose来对它进行部署。
    总共分为7个容器运行,通过在docker-compose.yml所在目录中执行docker-compose ps命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
    其中harbor-adminserver主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui所要操作的所有数据都通过harbor-adminserver这样一个数据配置管理中心来完成。

解释:adminserver(管理员):用于管理用户操作以及身份认证等

  2.5 harbor实验部署

  2.5.1 前期准备

IP地址服务
harbor服务器192.168.10.9docker-ce、docker-compose、harbor-offline-v1.2.2
client客户端192.168.10.7docker-ce

  2.5.2 在harbor实验部署

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

  2.5.3 服务端部署harbor服务

  2.5.3.1 下载harbor压缩包并解压到指定位置

cd /opt/

将harbor-offline-installer-v1.2.2.tgz和docker-compose-1.25.0转移到当前xshell下

tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

或者tar xf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

mv docker-compose-1.25.0 /usr/local/bin

  2.5.3.2 修改harbor安装的配置文件

    在配置文件下修改您当前harbor服务器的IP地址

cd /usr/local/harbor

vim /usr/local/harbor/harbor.cfg

  2.5.3.3 启动harbor服务

cd /usr/local/harbor/

./prepare

./install.sh

  2.5.3.4 查看harbor启动的镜像

docker-compose ps

  2.5.3.5 网页登录harbor

    请输入您的IP地址/harbor,然后输入用户名和密码登入harbor

  2.5.3.6 创建一个项目

    点击项目,新建项目输入项目名称,查看项目名称

  2.5.3.7 登录harbor

docker login -u admin -p Harbor12345 http://127.0.0.1

或者  docker login -u admin -p Harbor12345 http://您当前的本机地址

  2.5.3.8 下载nginx

docker pull nginx

  2.5.3.9 为镜像打上标签

docker tag nginx:latest 127.0.0.1/myproject-xxx/nginx:v1

或者docker tag nginx:latest 您的IP地址/mysproejct-xxx/nginx-v1

docker images

  2.5.3.10 上传镜像到仓库

docker push 127.0.0.1/myproject-xxx/nginx:v1

  2.5.3.11 查看是否传送到仓库中

  2.5.4 客户端操作

  2.5.4.1 登录harbor仓库

docker login -u admin -p Harbor12345 http://您harbor服务器的IP地址

  2.5.4.1.1 解决方式一

    在/usr/lib/systemd/system/docker.service里编辑

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

  2.5.4.1.2 解决方式二

    在daemon.json里进行编辑

vim /etc/docker/daemon.json

  2.5.4.2 重新启动服务,再次登录harbor

systemctl daemon-reload

systemctl restart docker

docker login -u admin -p Harbor12345 http://您当前Harbor服务器的IP地址

  2.5.4.3 仓库下载镜像并查看

docker pull 您当前harbor服务器的IP地址/myproject-xxx/nginx:v1

docker images

  2.5.4.4 仓库下载tomcat

docker pull tomcat

  2.5.4.5 标签镜像同时上传到仓库,查看网页仓库是否上传成功

docker tag tomcat:latest 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

  2.5.5 维护管理harbor仓库

  2.5.5.1 创建用户

  2.5.5.2 添加项目成员

   点击成员,新建仓库

  2.5.5.3 客户端上使用普通账户操作镜像
  2.5.5.3.1 删除tomcat:v2镜像,退出harbor,然后再次用新密码登录harbor

docker rmi 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v2

docker images

docker logout 您harbor服务器的IP地址

docker login -u admin -p Harbor12345 http://您当前harbor服务器的IP地址

  2.5.5.3.2 上传tomcat:v3镜像,同时在网页仓库查看

docker push 您当前harbor服务器的IP地址/myproject-xxx/tomcat:v3

  2.5.5.4 查看日志信息

  2.5.5.5 修改Harbor.cfg配置文件
  2.5.5.5.1 删除docker-compose

cd /usr/local/harbor/

docker-compose down -v

  2.5.5.5.2 重新生成文件

./prepare

  2.5.5.5.3  启动并运行容器

docker-compose up -d

  2.5.5.6 移除Harbor服务容器同时保留镜像数据/数据库,同时进行迁移
  2.5.5.6.1 删除docker-compose

docker-compose down -v

  2.5.5.6.2 查看数据

ls /data/registry/docker/registry/v2/repositories/myproject-xxx/

cd /data/registry/docker/registry/v2/repositories/myproject-xxx/

ls

  2.5.5.6.3 打包镜像数据

tar zcvf xxx-registry.tar.gz ./* 

  2.5.5.6.4 备份内容

ls

cd /usr/local/harbor/

mv /data/registry/docker/registry/v2/repositories/myproject-xxx/xxx-registry.tar.gz /opt/

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

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

相关文章

Rust 文档注释:文件注释//!和函数、结构体注释///

在 Rust 中,通常会在源代码文件的开头使用注释来提供有关文件、模块、版本、作者和其他相关信息的说明。这些信息可以帮助其他开发者更好地理解代码的背景和上下文。 以下是一个示例,展示了如何在 Rust 源代码文件的开头添加标题、版本、作者等信息&…

为什么叫“机器学习”Machine Learning 而不是“计算机学习”——深度学习Note

有一门学科“机器学习”火了起来,它是计算机科学与数学结合的产物,它的目的是使计算机“聪明”起来,实现人工智能。可是,令人困惑的是它明明就是计算机学习,为什么不叫“计算机学习”而叫“机器学习”呢?这…

04_SpringCloud

文章目录 单体架构与微服务架构的介绍单体架构微服务架构 微服务的实现服务之间的调用服务注册中心Eureka 注册中心Eureka的自我保护机制Nacos注册中心 单体架构与微服务架构的介绍 单体架构 单体架构 所有的代码最终打包成一个文件(jar包),整个系统的所有功能单元…

(三十六)第 6 章 树和二叉树(二叉树的顺序存储表示实现)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ?…

[Kubernetes] Rancher 2.7.5 部署 k8s

server: 192.168.66.100 master: 192.168.66.101 node1: 192.168.66.102 文章目录 1.rancher server 安装docker2.部署k8s3.kubeconfig 1.rancher server 安装docker 所有主机开通ipv4 vi /etc/sysctl.conf#加入 net.ipv4.ip_forward 1#配置生效 sysctl -prancher-server开通…

【spark(零)】spark技术概览

文章目录 一. Spark入门二. Spark RDD与 Spark core三. Spark SQL四. Spark Streaming五. Spark内核原理 一. Spark入门 Spark基础知识 Spark部署模式、 Spark运行流程 【概述】spark&#xff08;一&#xff09;:spark特点、知识范畴、spark架构、任务提交流程、支持哪些运行…

鸿蒙准备1

鸿蒙心路 感慨索性&#xff0c; 看看鸿蒙吧。打开官网相关介绍 新建工程目录结构 感慨 最近面试Android应用开发&#xff0c;动不动就问framework的知识&#xff0c;什么touch事件的触发源是啥&#xff08;eventHub&#xff09;&#xff0c;gc流程是啥&#xff0c;图形框架是什…

美国纽扣电池UL4200A及16CFR1262标准亚马逊要求

2023年9月21日&#xff0c;美国消费品安全委员会CPSC(Consumer Product Safety Commission) 决定采用UL 4200A-2023&#xff08;包含纽扣电池或硬币电池的产品安全标准&#xff09;作为包含纽扣电池或硬币电池的消费品的强制性消费品安全规则&#xff0c;相关要求同时被编入到1…

超越视觉极限:深度学习图像超分辨率算法清单【第一部分】

超越视觉极限&#xff1a;深度学习图像超分辨率算法清单 简介2014年 - SRCNN (Super-Resolution Convolutional Neural Network)2016年 - VDSR (Very Deep Super Resolution)2016年 - LapSRN (Laplacian Pyramid Super-Resolution Network)2017年 - EDSR (Enhanced Deep Super-…

Linux Kernel入门到精通系列讲解(OpenSBI 篇) 3.1 OpenSBI 源码分析之汇编

1.概述 OpenSBI是什么?这个问题对于初学者来说很重要,OpenSBI主要的作用就是一段RISC-V架构程序跳转程序,它集成了许多常用的driver,方便使用者快速移植,学过ARM的应该都知道BL2,OpenSBI的作用就类似于BL2,一段运行在DDR上的程序,负责为U-boot等提供入口参数和程序跳转…

提供 DISC性格测试报告的全新 API接口,带给你惊喜的发现!

简介 DISC个性测验由24组描述个性特质的形容词构成&#xff0c;每组包含四个形容词&#xff0c;这些形容词是根据支配性&#xff08;D&#xff09;、影响性&#xff08;I&#xff09;、服从性&#xff08;C&#xff09;、 稳定性&#xff08;S&#xff09;和四个测量维度以及一…

Nacos面试题(一)

1. 简述什么是 Nacos&#xff1f; Nacos是Dynamic Naming and Configuration Service的简称&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos可以帮助应用实现服务注册、发现和负载均衡&#xff0c;同时方便地管理配置信息。 具体来说&…

JMeter - 如何测试REST API / 微服务

概述&#xff1a; 有许多方法和工具可用于测试REST API。 当我需要测试REST API时&#xff0c;在查看了各种工具和选项之后&#xff0c;由于以下原因&#xff0c;我选择了JMeter。 JMeter是免费和开源的。 JMeter可以从CSV文件中直接读取您的测试数据。参数化非常简单。 可以…

SparkSQL与Hive整合 、SparkSQL函数操作

SparkSQL与Hive整合 SparkSQL和Hive的整合&#xff0c;是一种比较常见的关联处理方式&#xff0c;SparkSQL加载Hive中的数据进行业务处理&#xff0c;同时将计算结果落地回Hive中。 整合需要注意的地方 1)需要引入hive的hive-site.xml&#xff0c;添加classpath目录下面即可…

【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】

HTMLCSS家乡河南主题网页目录 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、页面效果Page1 首页Page2 开封游玩Page 3 开封美食Page4 留言 &#x1f308; 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 &#x1f40b;四…

springboot lua检查redis库存

需求 最近需求需要实现检查多个马戏场次下的座位等席对应库存渠道的库存余量&#xff0c;考虑到性能&#xff0c;决定采用Lua脚本实现库存检查。 数据结构 库存层级结构 redis库存hash类型结构 实现 lua脚本 --- 字符串分割为数组 local function split(str, char)local…

IIoT:数据融合在工业物联网中的应用——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断发展&#xff0c;工业物联网&#xff08;IIoT&#xff09;已经逐渐渗透到各个行业&#xff0c;为企业的生产和管理带来了前所未有的便利。 然而&#xff0c;与此同时&#xff0c;海量的数据也为企业带来了挑战。如何将这些…

linux的firmware和hal层

linux的firmware和hal层 在Linux中&#xff0c;固件&#xff08;firmware&#xff09;和硬件抽象层&#xff08;Hardware Abstraction Layer&#xff0c;HAL&#xff09;是两个不同的概念。固件是运行在硬件设备上的程序&#xff0c;它们通常被用来控制硬件的操作。而HAL是一种…

【数学建模】天然肠衣搭配问题

2011高教社杯全国大学生数学建模竞赛D题 天然肠衣&#xff08;以下简称肠衣&#xff09;制作加工是我国的一个传统产业&#xff0c;出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段&#xff08;原料&#xff09;&#xff0c;进入组装工序。传统的生产方式依靠人工…

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案 故障描述修复方案 故障描述 ERROR SyntaxError: missing ) after argument list C:\Users\xxx\Documents\workspace\WebstormProjects\xxxx\node_modules\webpack\lib\util\createHash.js:135return new …