Docker之注册中心的使用与操作

一、Docker注册中心与仓库

Reastry 可译为注册中心注册服务器,是存放仓库的地方一个注册中心往往有很多仓库Docker默认的注册中心是Docker Hub,其可以通过浏览器访问,也可以使用docker search命令访问。

仓库是集中存放镜像文件的地方。每个仓库集中存放某一类镜像,往往包括多个镜像文件,不同的摊像通过不同的标签来区分,并通过“仓库名:标签”格式指定特定版本的镜像。

仓库名经常以两段的格式出现,如gitlab/gitlab-ce,前者是命名空间,后者是仓库名

根据所存储的镜像文件是否公开共享,可以将Docker仓库分为公开仓库私有仓库

二、Docker Hub

Docker Hub 是一个基于云的注册中心,它为镜像的检索、发布和变更管理、用户和团队协作、开发流程的自动化提供了集中式的资源服务,其主要功能:

  • 镜像仓库上传和下载容器镜像
  • 团队和组织:管理对容器镜像的私有仓库的访问。
  • 官方镜像:下载和使用由Docker 官方提供的高质量容器镜像。
  • 发布者镜像:下载和使用由外部供应商提供的高质量容器镜像。
  • 构建:从GitHub和Bitbucket这两个源代码托管平台自动构建容器镜像并将它们上传到Docker一山,当对源代码库进行修改时,会自动构建一个新镜像。
  • Webhooks:这是一个自动化构建特性,在一个镜像上传成功后,Webhooks 会触发操作,将Dncker Hub与其他服务进行整合。

根据镜像仓库的内容将它们分为顶级镜像仓库次级镜像仓库

三、官方仓库

Docker Hub包括大量的由厂商和贡献者向Docker提供的公开的、经过认证的仓库,能够确保仓库及时进行安全更新。因此,官方仓库有以下用途:

  • 提供必要的基础 OS 镜像仓库(如 UbuntuCentOS),作为大多数用户构建镜像的起点。
  • 为流行的编程语言运行时、数据存储和其他服务提供类似于平台即服务(PaaS)所提供的解决方案。
  • 作为学习Dockerfile的最佳实践,提供清晰的文档供其他Dockerfile作者参考。
  • 确保及时的安全更新

四、镜像加速器

Docker Hub 部署在境外服务器中,在国内访问可能会受到影响。为解决此问题,需要配置相应的国内镜像源来提高镜像的下载速度和稳定性。目前国内提供的 Docker Hub 镜像服务主要有阿里云加速器DaoCloud网易云镜像仓库时速云镜像服务等。

Docker 官方也提供了在我国的加速器,不用注册,直接使用加速器地址即可使用。使用该加速器的基本配置方法是修改/etc/docker/daemon.json文件,在其中加上以下语句。

 "registry-mirros":["https://registry.docker-cn.com"]​# 保存退出后重启Docker,使配置生效systemctl daemon-reloadsystemctl restart docker

五、创建Docker Hub账号

自行查阅..........

六、使用第三方Docker注册中心

除了Docker Hub之外,如阿里云——容器镜像服务

1、搜索镜像

2、使用命名空间

  • 阿里云的容器镜像服务使用命名空间分区管理镜像仓库。
  • 命名空间是一些仓库的集合面。要将镜像推送(上传)到阿里云的Docker仓库中,必须先创建命名空间。
  • 这里默认允许用户直接推送镜像,系统自动根据仓库名称创建对应仓库,可以通过将自动创建仓库设置为关闭来禁用这一自动创建的功能。
  • 对于推送镜像自动创建的仓库,默认其是私有的,可以将默认仓库类型设置为公开,以使自动创建的仓库默认为公开仓库。

3、从命令行登录阿里云Registry

无论是使用docker pull命令从阿里云镜像仓库拉取镜像,还是通过docker push命令将镜像推送到阿里云镜像仓库,都必须先使用docker login命令登录阿里云 Registry

 [root@docker-2322030238 ~]# docker login registry.cn-hangzhou.aliyuncs.comUsername: tb6824xxxxPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-store​Login Succeeded

此处用户名是阿里云账号登录密码是在镜像仓库管理控制台设置的Registry登录密码,而不是阿里云账号登录密码。

4、将镜像推送到阿里云Registry

镜像在本地环境构建或是打包之后,就可以推送到Registry。 首先要确认登录的用户对指定的命名空间有写入权限,还要注意登录的Registry和当前操作镜像的Registry必须保持一致。

然后为镜像设置针对阿里云Registry的标签,其标签格式如下:

 Registry 域名/命名空间/仓库名称:[标签]

其中Registry域名为阿里云Registry的域名仓库名称就是镜像名称标签相当于镜像版本。在本示例中进行如下操作。

 docker tag hello-world registry.cn-hangzhou.aliyuncs.com/docker_dok/hello-world
 [root@docker-a ~]# docker push registry.cn-hangzhou.aliyuncs.com/docker_dok/hello-worldUsing default tag: latestThe push refers to repository [registry.cn-hangzhou.aliyuncs.com/docker_dok/hello-world]ac28800ec8bb: Pushed latest: digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7 size: 524

可以到阿里云Registry上查看新推送的仓库

5、从阿里云Registry拉取镜像

拉取公开的镜像,不需要登录阿里云Registry。先通过浏览器搜索到要拉取的镜像,获取其地址,再进行拉取操作

 # 拉取之前上传的镜像[root@docker-a ~]# docker pull registry.cn-hangzhou.aliyuncs.com/docker_dok/hello-worldUsing default tag: latestlatest: Pulling from docker_dok/hello-worldDigest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/docker_dok/hello-world:latestregistry.cn-hangzhou.aliyuncs.com/docker_dok/hello-world:latest

七、自建Docker注册中心

因为安全可控性和Internet连接限制的问题,用户可以建立自己的注册中心提供镜像仓库注册服务。Docker Registry工具已经开源,并在Docker Hub提供官方镜像。

1、基于容器安装运行Registry

 # Docker Registry工具负责镜像仓库的管理[root@docker-a ~]# docker run -d -p 5000:5000 --restart=always --name myregistry -v /opt/data/registry:/var/lib/registry registryUnable to find image 'registry:latest' locallylatest: Pulling from library/registry619be1103602: Pull complete 5daf2fb85fb9: Pull complete ca5f23059090: Pull complete 8f2a82336004: Pull complete 68c26f40ad80: Pull complete Digest: sha256:fb9c9aef62af3955f6014613456551c92e88a67dcf1fc51f5f91bcbd1832813fStatus: Downloaded newer image for registry:latestce61d322127cf4a53537051663d58891239cb19f328e52df85af641c87dc51d0
  • -v选项将主机的本地/opt/data/registry目录绑定到容器/var/ib/registry目录DockerRegistry默认存放镜像文件的位置)中,这样可以实现数据的持久化,将镜像仓库存储到本地文件系统中。
  • -p选项用于设置映射端口,这样访问主机的5000端口就能访问到Registry容器的服务
  • --restart选项设置重启策略,上面示例中值设置为always表示这个容器即使异常退出也会自动重启保持了Registry服务的持续运行
  • --name myregistry选项表示将该容器命名为myregistry,便于后续操作。

可以执行以下命令获取所有的镜像仓库来测试Docker Registry服务,下面示例中说明服务正常运行,刚建立的注册中心还没有任何镜像。

 [root@docker-a ~]# curl http://127.0.0.1:5000/v2/_catalog{"repositories":[]}

2、将镜像上传到自建的注册中心

上传镜像之前需要首先针对自建的注册中心设置相应的标签,其标签格式如下

[主机:端口]/仓库名称:[标签]

主机可以是自建注册中心的域名或IP地址端口就是该中心对外提供注册服务的端口

[root@docker-a ~]# docker tag hello-world 127.0.0.1:5000/hello-world:v1
# 上传镜像
[root@docker-a ~]# docker push 127.0.0.1:5000/hello-world:v1 
The push refers to repository [127.0.0.1:5000/hello-world]
ac28800ec8bb: Pushed 
v1: digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7 size: 524# 进行测试
[root@docker-a ~]# curl http://127.0.0.1:5000/v2/_catalog
{"repositories":["hello-world"]}

3、从注册中心下载镜像

[root@docker-2322030238 ~]# docker pull 127.0.0.1:5000/hello-world:v1
v1: Pulling from hello-world
Digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7
Status: Image is up to date for 127.0.0.1:5000/hello-world:v1
127.0.0.1:5000/hello-world:v1

4、配置注册中心地址

默认情况下,注册中心地址使用localhost127.0.0.1是没有问题的。

如果要使用主机的域名或IP 地址就会报出“http: server gave HTTP response toHTTPS client”这样的错误,这是因为Docker自从 1.3.X 版之后,访问 Docker 注册中心默认使用的是 HTTPS,但是搭建的私有注册中心默认使用的是HTTP。

最简单的解决方案是修改Docker客户端的/etc/docker/daemon.json文件,将要使用的注册中心域名或 IP 地址添加到 insecure-registries 列表中,以允许 Docker 客户端与该列表中的注册中心进行不安全的通信

# 本示例中定义如下:
“insecure-registries":"192.168.199.51:5000"]# 如果该配置文件没有内容,则需要加上花括号,例如:
{“insecure-registries":"192.168.199.51:5000"]}# 然后重启docker服务
systemctl restart docker# 然后上传、下载操作就没有问题了
[root@docker-a ~]# docker pull 192.168.199.51:5000/hello-world:v1
v1: Pulling from hello-world
Digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7
Status: Image is up to date for 192.168.199.51:5000/hello-world:v1
127.0.0.1:5000/hello-world:v1

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

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

相关文章

html2Canvas截图包含滚动条解决思路

概况描述 在项目中使用html2Canvas进行截图时发现无法截取滚动条部分,前端是使用vue2的版本,网上找了很多方式都没效果,冷静思考后,给出解决办法。 解决思路 当我们截取的div容器的宽和高与内部的子容器div的宽和高不一样时&am…

Django模型的属性与方法

本节介绍Django模型的属性和方法,以及如何重写之前定义的模型方法等内容。 3.5.1 模型属性 Django模型中最重要的属性就是Manager,它是Django模型和数据库查询操作之间的接口,并且被用作从数据库当中获取实例的途径。如果Django模型中没有…

JAVA学习笔记27(异常)

1.异常 ​ *异常(Exception) ​ *快捷键 ctrl alt t 选中try - catch ​ *如果进行了异常处理,那么即使出现了异常,程序可以继续执行 1.1 基本概念 ​ *在Java语言中,将程序执行中发生的不正常情况称为"异常"(开发过程中的语…

MySQL行格式(row format)

MySQL行格式(row format) 表的行格式决定了其行的物理存储方式,这反过来又会影响查询和 DML 操作的性能。随着单个磁盘页面容纳更多行,查询和索引查找可以更快地工作,缓冲池中需要的高速缓存内存更少,写出…

耐高温300度锅炉轴承,江苏鲁岳轴承制造的行业标杆

自润滑轴承-产品类型-耐高温轴承-不锈钢轴承-江苏鲁岳轴承制造有限公司。锅炉轴承,耐高温至200度-800度。 江苏鲁岳轴承制造有限公司,一家专注于锅炉轴承和耐高温轴承的研发与生产的企业,致力于为客户提供高质量、高性能的轴承解决方案。其中…

使用 OpenCV 测量物体尺寸

使用 OpenCV 测量物体尺寸 你是否曾经遇到过这样的问题:想要知道计算器的精确尺寸,但手头又没有专业的测量工具?别担心,今天我们就来教大家一个简单又实用的方法,通过一张A4纸就能估算出计算器的宽度和高度&#xff0c…

iZotope RX 10 音频修复和增强工具 mac/win

iZotope RX 10 for Mac是一款出色的音频修复和增强工具,凭借其卓越的音频处理技术,能够轻松应对各种音频问题。 无论是背景噪音、回声还是失真,RX 10都能精准去除,还原清晰纯净的音频。同时,它还提供了丰富的增强工具&…

【Linux系统编程】第六弹---权限的概念

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、什么是权限 2、权限的本质 3、Linux中的用户 4、Linux中文件的权限 4.1、文件访问者的分类(角色) 4.2、文件类型和访问权…

Python 全栈安全(三)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第十一章:OAuth 2 本章内容 注册 OAuth 客户端 请求对受保护资源的授权 授权而不暴露身份验证凭据 访问受保护的资源 OAuth …

人脑是怎么防止梯度消失和梯度爆炸的

人脑是怎么防止梯度消失和梯度爆炸的? 神经网络,也称为人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的子集,并且是深度学习算法的核心。其名称和结构是受人类大脑的启发,模仿了生物神经元信号相互传递的方式。 感觉这个问…

亚马逊---设计安全架构

会从以下三个方面展开: 1、AWS资源访问安全 2、应用程序负载的网络安全 3、云中数据的安全 责任共担模式 就像租房子(房东和你的责任) AWS资源访问安全 需要掌握以下几点: 1、跨多个账户的访问控制和管理 2、AWS联合访问和身份服…

SpringMVC--RESTful

1. RESTful 1.1. RESTful简介 REST:Representational State Transfer,表现层资源状态转移。 RESTful是一种网络架构风格,它定义了如何通过网络进行数据的交互。这种风格基于HTTP协议,使得网络应用之间的通信变得更加简洁和高效。…

力扣283. 移动零

Problem: 283. 移动零 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义一个int类型变量index初始化为0; 2.遍历nums当当前的元素nums[i]不为0时使nums[i]赋值给nums[index]; 3.从index开始将nums中置对应位置的元素设为0; 复杂度 时间…

Java 异常处理详解

Java异常是Java编程语言中用于表示程序运行时错误的一种机制。Java异常体系通过异常类和异常处理来实现,允许程序在遇到预期或意外情况时,优雅地处理问题,而不是立即终止程序运行。 异常类层次结构 Java异常类都继承自java.lang.Throwable类…

python爬虫--------requests案列(二十七天)

兄弟姐们,大家好哇!我是喔的嘛呀。今天我们一起来学习requests案列。 一、requests____cookie登录古诗文网 1、首先想要模拟登录,就必须要获取登录表单数据 登录完之后点f12,然后点击network,最上面那个就是登录接口…

Spring AI Summary

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Spring AI is a project that aims to streamline the development of AI applications by providing abstractions and reusable components that can be easily integrate…

【软考---系统架构设计师】软件架构

目录 1 一、软件架构的概念 二、软件架构风格 (1)数据流风格​​​​​​​ (2)调用/返回风格 (3)独立构件风格 (4)虚拟机风格 (5)仓库风格 三、架构…

labview中循环停止事件的深入研究

1.错误用法 第一次值事件运行的时候空白按钮给的F值,第二次值事件运行的时候空白按钮给的T值,这时循环才真正结束。 2.正确用法之一 赋值和值改变事件从同时进行变成按顺序执行。 3.正确用法之二 值事件发生以后超时事件将T值赋值给结束条件&#xff…

Linux环境变量深度解析

文章目录 一、引言二、环境变量的基本概念1、环境变量的定义2、环境变量的作用与意义 三、环境变量的导入1、导入所需文件2、登陆时的导入 四、环境变量的设置方法1、查看环境变量的方式2、使用export命令临时设置环境变量3、修改配置文件以永久设置环境变量 五、命令行参数与环…

免费听音乐,下载音乐mp3,mp4,歌词的网站分享(2024-04-22)

亲测!!! 1、音乐客 免费听和免费下载 经典老歌 - 音乐客音乐客,yinyueke.net,免费音乐,免费在线音乐播放器,免费下载音乐,音乐,播放器,下载,播放,DJ,免费,mp3,高音质,…