如何搭建属于自己的Docker私有仓库

华子目录

  • Docker registry仓库
    • 介绍
    • 分类
    • registry组成(repository和index)
      • Repository
      • index
  • 拉取上床仓库镜像
    • 拉取
    • 上传
  • 知名docker仓库
  • 在docker hub商创建自己的docker registry
    • 将镜像上传到自己的registry
    • 从registry仓库中拉取镜像
  • 搭建私有仓库Distribution和Harbor
    • distribution介绍
    • Harbor介绍
    • 搭建Distribution和Harbor

Docker registry仓库

介绍

  • registry用于保存docker镜像,包括镜像的层次结构和元数据
  • 启动镜像时,docker daemon会试图从本地获取相关的镜像本地镜像不存在时,其将从registry中下载该镜像并保存到本地
  • 拉取镜像时,如果不知道registry仓库地址默认从Docker Hub搜索拉取镜像

分类

  • Sponsor Registry:第三方的registry,供客户和docker社区使用
  • mirror Registry:第三方的registry,只让客户使用;如docker cn和阿里云的镜像加速器
  • vendor Registry:服务商的registry,由发布docker镜像的供应商提供的registry;如红帽提供的专有的,收费提供
  • private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry;自建的registry,在本地搭建registry,节省带宽

registry组成(repository和index)

Repository

  • 由特定的docker镜像的所有迭代版本组成的镜像仓库

  • 一个registry中可以存在多个repository:

    • repository可分为顶层仓库用户仓库
    • 用户仓库名称格式为用户名/仓库名
  • 每个仓库可以包含多个tag(标签),每个标签对应一个镜像

index

  • 维护用户账户,镜像的校验以及公共命名空间的信息
  • 相当于为registry提供了一个完成用户认证等功能的检索接口

拉取上床仓库镜像

拉取

dcoker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>


registry:仓库服务器地址,不指定默认是docker hub
port:端口,默认是443,因为是https协议
namespace:名称空间,表示是哪个用户的仓库,如果是顶层仓库,可忽略
name:仓库名
tag:标签名,默认是latest版本

上传

docker push [options] name[:tag]

知名docker仓库

  • https://hub.docker.com/
  • https://quay.io/
  • https://promotion.aliyun.com/ntms/act/kubernetes.html

在docker hub商创建自己的docker registry

(1)首先需要在docker hub网站上注册一个账号,记住用户名密码,因为docker login时需要使用
在这里插入图片描述
(2)在docker hub上点击创建一个仓库
在这里插入图片描述
(3)填写仓库名huazi086/busybox和简短的描述
在这里插入图片描述

将镜像上传到自己的registry

[root@server ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    92b11f67642b   6 weeks ago    187MB
mysql        latest    019814493c7a   2 months ago   632MB
busybox      latest    beae173ccac6   2 years ago    1.24MB
ubuntu       latest    ba6acccedd29   2 years ago    72.8MB
[root@server ~]# docker tag busybox huazi086/busybox:v1
[root@server ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
nginx           latest    92b11f67642b   6 weeks ago    187MB
mysql           latest    019814493c7a   2 months ago   632MB
huazi086/busybox   v1        beae173ccac6   2 years ago    1.24MB
busybox         latest    beae173ccac6   2 years ago    1.24MB
ubuntu          latest    ba6acccedd29   2 years ago    72.8MB

使用docker login登录

[root@server ~]# docker login -u huazi086
Password:
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@server ~]# docker push huazi086/busybox:v1
The push refers to repository [docker.io/huazi086/test]
01fd6df81c8e: Pushed
v1: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527

上传成功后,打开docker hub,发现已经上传了v1版本
在这里插入图片描述

从registry仓库中拉取镜像

前提是已经使用docker login登录到自己的docker hub上

[root@server ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    92b11f67642b   6 weeks ago    187MB
mysql        latest    019814493c7a   2 months ago   632MB
ubuntu       latest    ba6acccedd29   2 years ago    72.8MB


[root@server ~]# docker pull huazi086/busybox:v1
v1: Pulling from huazi086/busybox
5cc84ad355aa: Already exists
Digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee
Status: Downloaded newer image for huazi086/busybox:v1
docker.io/huazi086/busybox:v1


[root@server ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
nginx           latest    92b11f67642b   6 weeks ago    187MB
mysql           latest    019814493c7a   2 months ago   632MB
huazi086/busybox   v1        beae173ccac6   2 years ago    1.24MB
ubuntu          latest    ba6acccedd29   2 years ago    72.8MB

搭建私有仓库Distribution和Harbor

distribution介绍

私有仓库Distribution通常指的是Docker Distribution项目,这是一个开源的项目,用于存储、分发和部署Docker镜像。它是一个灵活和可扩展的平台,适用于创建公共或私有的容器镜像仓库。

私有仓库Distribution允许组织或企业在其内部网络环境中存储和管理Docker镜像,确保只有授权的用户能够访问和使用这些镜像。这种私有仓库的设置提供了更高的安全性和可控性,因为组织可以自定义访问权限、管理镜像版本,并控制哪些镜像可以被分发和部署。

私有仓库Distribution还具有以下特点:

  1. 安全性:只有经过授权的用户才能访问私有仓库,这有助于保护敏感信息和代码。
  2. 可定制性:私有仓库可以根据组织的需求进行定制,包括仓库名称、布局和内容等。
  3. 稳定性:私有仓库提供稳定的访问和下载速度,确保用户能够快速地获取所需的Docker镜像。
  4. 离线访问:私有仓库可以搭建在本地或内部网络上,这样用户就可以在不依赖外部仓库的情况下进行离线访问和镜像拉取。
  5. 高度可靠:通过备份和恢复机制,私有仓库可以确保存储的镜像不会丢失,提供高可靠性。

搭建私有仓库Distribution需要一定的技术知识和经验,包括Docker和容器技术的理解,以及网络和安全配置的能力。一旦搭建成功,组织就可以利用其进行高效的镜像管理和分发,提升容器化应用的部署和运维效率。

Harbor介绍

  • Harbor是VMware公司开源的企业级DockerRegistry项目其目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registny为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
  • 简单说来,Harbor封装了Docker的registry v2,帮用户提供了许多便挂管理的特性,方便用户操作。

搭建Distribution和Harbor

https://blog.csdn.net/weixin_52951697/article/details/129847236

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

备战蓝桥杯---树学初步1

LCA&#xff08;最近公共祖先&#xff09; 定义&#xff1a;有根树的两个节点u,v&#xff0c;他们的LCA是一个节点x,其中x是他们的公共祖先并且X的深度尽可能大。 法1---Tarjan算法&#xff1a; 核心&#xff1a;DFS并查集 在并查集中建立仅有u的集合&#xff0c;设该集合祖…

Redis入门到实战-第十三弹

Redis入门到实战 Redis中JSON数据类型常见操作官网地址Redis概述JSON常见操作更新计划 Redis中JSON数据类型常见操作 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是…

Java 扫描某包下所有类的注解并获得注解值

背景 &#xff1a; 需求 需要获取某个包下的所有的注解 并不是全部项目的 所以 只用针对某个包 进行扫描 获取注解 数据就行 百度了一圈 spring boot 没有自带的 获取注解集合的方法 在看 php 中 hyperf 框架 看到了 这个方法 就是因为 我需求是 php 和java 合体 微服务开发 …

c语言游戏实战(5):走迷宫

前言&#xff1a; 制作一个迷宫游戏是一个有趣的编程挑战。首先&#xff0c;我们需要设计一个二维数组来表示迷宫的布局&#xff0c;其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来&#xff0c;我们需生成迷宫。在生成迷宫的过程…

【Go】三、Go指针

文章目录 1、指针2、说明 1、指针 &符号变量 就可以获取这个变量内存的地址*int 是一个指针类型 &#xff08;可以理解为 指向int类型的指针&#xff09; package main import("fmt" ) func main(){var age int 18//&符号变量 就可以获取这个变量内存的地…

武汉星起航:一站式跨境电商服务,助力企业扬帆远航

武汉星起航电子商务有限公司&#xff0c;作为业界知名的自营亚马逊跨境电商与孵化服务提供商&#xff0c;凭借优质的服务和卓越的口碑&#xff0c;赢得了众多企业的信赖与青睐。公司以其独特的一站式跨境电商服务优势&#xff0c;为合作伙伴提供了全方位、个性化的解决方案&…

[RAM] 3D RAM 能否复制 3D NAND 神话?

主页&#xff1a; 元存储博客 文章目录 前言挑战Lam Research 3D RAMNeo 3D X-RAM展望 前言 人工智能时代&#xff0c;DRAM的容量扩展受到限制&#xff0c; 需要迫切解决&#xff0c;以满足应用的要求[2]。 3D DRAM是指以垂直方向存储位的体系结构&#xff0c;类似于3D NAND[…

Python环境下一种改进小波分解方法-用于多分量信号的分解

小波通俗的讲就是一种振幅表现为在正负之间震荡的波形。小波变换在基于短时傅立叶变换的前提下&#xff0c;又加入了其所没有的可随频率变化的“时间-频率”窗口&#xff0c;其能对时间、频率进行局部化分析&#xff0c;并且对待处理信号通过多尺度处理使其表现为时-频细分的特…

【详细讲解MNN介绍,安装和编译】

&#x1f308;个人主页:程序员不想敲代码啊&#x1f308; &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f3c6; &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

26. UE5 RPG同步面板属性(二)

在上一篇&#xff0c;我们解析了UI属性面板的实现步骤&#xff1a; 首先我们需要通过c去实现创建GameplayTag&#xff0c;这样可以在c和UE里同时获取到Tag创建一个DataAsset类&#xff0c;用于设置tag对应的属性和显示内容创建AttributeMenuWidgetController实现对应逻辑 并且…

【C++STL详解(二)】——string类模拟实现

目录 前言 一、接口总览 二、默认成员函数 1.构造函数 2.拷贝构造 写法一&#xff1a;传统写法 写法二&#xff1a;现代写法&#xff08;复用构造函数&#xff09; 3.赋值构造 写法一&#xff1a;传统写法 写法二&#xff1a;现代写法(复用拷贝构造) 4.析构函数 三、…

Linu修改端口号和密码

Linu修改端口号和密码 修改端口号 vim /etc/my.cnf 在数据库外修改密码 mysqladmin -u root -p旧密码 password 新密码&#xff1b; mysqladmin -u用户名 -p旧密码 password 新密码 数据库内修改密码 新建用户设置密码 create user root‘localhost或者%’ identified by ‘密…

Linux安装python3

Linux安装python3 本文章中使用的安装包等相关文件&#xff1a; 链接: https://pan.baidu.com/s/1C4PTB6IqXtHM6XSOEMkefg 提取码: wyeq 1.编译环境安装 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc mak…

【Linux】图文详解Xshell远程连接服务器:以Amazon EC2 VPS为例

文章目录 问题描述解决方案Q&A 问题描述 本地cmd或powershell使用ssh -i “your.pem” user_nameip_address是可以登录Amazon EC2云服务器的。 然而&#xff0c;当使用XShell以SSH加载PEM文件方式登录亚马逊EC2云服务器&#xff0c;一直出现输入密码的问题&#xff0c;如…

0101模板生成任务与shell命令执行任务-datax-python工具

文章目录 一、前言二、分析2.1 mysql工具2.2 模板2.2 执行shell命令 三、代码实现四、演示五、待优化结语 一、前言 最近在学习数仓相关内容&#xff0c;需要把mysql业务数据库gmall中的数据全量同步到hdfs中。使用的工具是datax&#xff0c;虽然datax可以在一个job内放置多个…

【实现报告】学生信息管理系统(链表实现)

目录 实验一 线性表的基本操作 一、实验目的 二、实验内容 三、实验提示 四、实验要求 五、实验代码如下&#xff1a; &#xff08;一&#xff09;链表的构建及初始化 学生信息结构体定义 定义元素类型 链表节点结构体定义 初始化链表 &#xff08;二&#xff09;…

C++编译过程

C编译过程分为四个步骤&#xff1a;分别是预处理(Prepressing) 、编译(Compilation) 、汇编(Assembly) 和链接(Linking)&#xff0c;如下图所示&#xff1a; 假如一个文件名为hello.cpp 预编译后的文件 1、预编译 将源代码文件hello.cpp和源文件中使用到的头文件&#xff0c…

WEB自动化测试,一定得掌握的8个核心知识点

写在前面 使用 cypress 进行端对端测试&#xff0c;和其他的一些框架有一个显著不同的地方&#xff0c;它使用 JavaScript 作为编程语言。 传统主流的 selenium 框架是支持多语言的&#xff0c;大多数 QA 会的 python 和 Java 语言都可以编写 selenium 代码&#xff0c;遇到需…

Adaboost集成学习 | Matlab实现基于RF-Adaboost随机森林结合Adaboost集成学习时间序列预测

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Matlab实现基于RF-Adaboost随机森林结合Adaboost集成学习时间序列预测。基于RF-Adaboost(随机森林结合Adaboost集成学习)的时间序列预测方法结合了随机森林在处理高维数据和复杂关系方面的优势,以及Adaboos…

vue源码解析—— watch/computed的实现逻辑和区别

watch 和 computed 是 Vue 中的两个重要的响应式属性&#xff0c;它们在实现机制和使用上存在一些区别。 watch&#xff1a;用于监听数据的变化&#xff0c;并在数据变化时执行回调函数。可以使用 deep 配置项来开启深度监听&#xff0c;监听数据的子属性变化。可以使用 immedi…