Docker--Docker Registry(镜像仓库)

米饭4个月前行业资讯311

什么是Docker Registry?

镜像仓库(Docker Registry)是Docker生态系统中用于存储、管理和分发Docker镜像的关键组件。

镜像仓库主要负责存储Docker镜像,这些镜像包含了应用程序及其相关的依赖项和配置,是构建和运行Docker容器的基础。

除了存储功能外,镜像仓库还提供管理和分发镜像的能力,包括镜像的索引、搜索、登录认证等。

631e6525b0cb4e45b3edd8a20766a36c.png

镜像仓库的分类

镜像仓库可以划分为多种类型;


按照开放程度分类

1.公共镜像仓库


官方镜像仓库:由Docker官方提供的镜像仓库,包含了大量常用的官方镜像,如nginx、mysql等。这些镜像经过官方认证,具有较高的可靠性和安全性。

第三方公共镜像仓库:由第三方提供的公共镜像仓库,如腾讯云镜像仓库、阿里云镜像仓库等。这些仓库提供了丰富的镜像资源,

用户可以根据需要选择并下载。

2.私有镜像仓库


私有镜像仓库通常部署在企业内部或私有网络中,仅对特定用户或组织开放。它用于存储和管理企业内部的应用镜像和敏感数据,确保镜像的安全性和可控性。

按部署方式分类

1.本地镜像仓库


本地镜像仓库部署在本地服务器上,适用于小型团队或内部网络环境。它提供了基本的镜像存储和管理功能,但可能缺乏高级的安全性和可扩展性。

2.云镜像仓库


云镜像仓库部署在云平台上,如阿里云、腾讯云等。它提供了丰富的镜像存储、管理和分发功能,支持高并发访问和海量数据存储。同时,

云镜像仓库还提供了与云平台的其他服务(如容器服务、CI/CD等)的集成,方便用户进行容器化应用的开发和部署。

按功能特性分类

1.基础镜像仓库


基础镜像仓库提供了基本的镜像存储、拉取和推送功能。它适用于简单的镜像管理需求,但可能缺乏高级的安全性和可管理性。

2.企业级镜像仓库


企业级镜像仓库在基础镜像仓库的基础上,增加了更多的安全、管理和审计功能。它支持基于角色的访问控制(RBAC)、

镜像签名和验证、审计日志等高级功能,确保镜像的安全性和可控性。同时,企业级镜像仓库还支持与企业的LDAP/AD等身份认证系统集成,

方便用户进行身份认证和权限管理。

镜像仓库的工作管理机制

8d6c2f0593b0458da55a5dd2ce29235c.png

1.当需要使用镜像时,用户可以使用docker pull命令从镜像仓库中拉取镜像。镜像仓库会根据用户请求的镜像名称和标签来查找并返回相应的镜像。

2.开发人员部署好镜像所需内容后,可以使用docker push命令将镜像推送到镜像仓库中,供给其他对应环境的开发人员进行使用;

3.镜像仓库支持镜像的删除操作。然而,由于镜像之间可能存在依赖关系,直接删除镜像可能会导致其他镜像无法正常使用。因此,镜像仓库通常会使用垃圾回收机制来清理没有被引用的块文件,以节省存储空间。


常见的镜像仓库

Docker Hub

Docker Hub 的官方链接

ocker Hub是由Docker公司提供的一个集中存储、分享和管理Docker镜像的云服务平台。


主要功能:


镜像托管:

用户可以将自己创建的Docker镜像上传到Docker Hub,供其他用户下载和使用。

Docker Hub提供了不同层次的存储服务,包括公共仓库和私有仓库,满足用户不同的存储需求。

fd8012eefb57481abaa976d08a019cf5.png

e24c4ab38e2a43858d7e22110280b827.png

2.镜像搜索与下载:
用户可以在Docker Hub上搜索所需的镜像,通过关键词、标签、作者等条件进行筛选。
找到合适的镜像后,用户可以通过Docker客户端从Docker Hub上拉取镜像,以便在本地或云环境中部署应用程序。

03457ca9e7cc46ec912c8b3dfd0b0a53.png

8ccbe650937d41a7a49795b110db033a.png

5dce285009c5495ca4277a2c7dd07d12.png


3. 自动构建与集成:


Docker Hub支持与GitHub、Bitbucket等代码托管平台集成,实现代码的自动构建和镜像推送。

用户可以配置自动构建规则,当代码仓库中的代码发生变化时,Docker Hub会自动构建新的镜像并推送到指定的仓库中。

4.团队协作:


Docker Hub支持团队账户的创建,方便团队成员之间共享和管理镜像。

团队成员可以共同维护一个镜像仓库,进行镜像的上传、下载、更新等操作。

国内镜像源

由于现在需要科学上网,所以对于国外网站很多都登不上去,所以只能利用国内的镜像仓库来进行拉取镜像;

像我们上一章安装的时候,就是更换了国内镜源来拉取的;


国内镜像加速器服务:


Docker官方镜像(中国区):

网址:https://registry.docker-cn.com

腾讯云镜像加速器:

网址:https://mirror.ccs.tencentyun.com

中国科学技术大学镜像加速器:

网址:https://docker.mirrors.ustc.edu.cn

网易云镜像加速器:

网址:http://hub-mirror.c.163.com

南京大学镜像加速器:

网址:https://docker.nju.edu.cn

阿里云镜像加速器:

注意:阿里云镜像加速器通常需要在阿里云控制台中获取专属的加速器地址,格式一般为https://xxxx.mirror.aliyuncs.com,其中xxxx为用户的专属标识。

用户需要登录阿里云控制台,进入镜像加速器页面获取具体的加速器地址。

镜像仓库的常用命令

参考官方文档

命令清单

命令别名功能备注
docker login
登录仓库科学上网才可使用
docker pulldocker image pull拉取镜像必须掌握
docker pushdocker image push推送镜像科学上网才可使用
docker search
查找镜像科学上网才可使用
docker logout
登出镜像科学上网才可使用


docker login

登陆到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库Docker
Hub

docker login [OPTIONS] [SERVER]

关键参数

  • -u :登陆的用户名

  • -p :登陆的密码

例如:

docker login -u 用户名 -p 密码

docker pull

从镜像仓库中拉取或者更新指定镜像

docker image pull [OPTIONS] NAME[:TAG|@DIGEST]

关键参数

  • -a :拉取所有 tagged 镜像

  • –disable-content-trust :忽略镜像的校验,默认开启

例如

docker pull ubuntu:18.04

3d4bb9db1863422abbbbab6676d9418a.png

docker push

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker image push [OPTIONS] NAME[:TAG]

关键参数

  • -a :推送所有 tagged 镜像

  • –disable-content-trust :忽略镜像的校验,默认开启

例如

docker push myapache:v1

docker search

从 Docker Hub 查找镜像

docker search [OPTIONS] TERM

关键参数


–no-trunc :显示完整的镜像描述;

-f <过滤条件>:列出收藏数不小于指定值的镜像。

docker logout

登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker logout [SERVER]


docker images

列出本地镜像

docker image ls [OPTIONS] [REPOSITORY[:TAG]]

关键参数

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

  • –digests :显示镜像的摘要信息;

  • -f :显示满足条件的镜像;

  • –format :指定返回值的模板文件;

  • –no-trunc :显示完整的镜像信息;

  • -q :只显示镜像 ID

例如:

08ee1b54152b4acd9541a5f52359aad1.png

fa91512d557145079fa8cdaad4644687.png

docker image inspect

查看镜像详细信息

docker image inspect [OPTIONS] IMAGE [IMAGE...]

例如:

4cdf8aff631849cd94649f2106d6ae42.png

docker ps

列出容器

docker ps [OPTIONS]

参数


-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

–format :指定返回值的模板文件。如 json 或者 table

-l :显示 latest 的容器。

-n :列出最近创建的 n 个容器。

–no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小、

例如



1c897f2bdf254846aa6534c9f6b774d7.png



7f939f92f98a40dfa13b5fb56e7ef57e.png

700872c497484db3aef78e2d8463454f.png

33ad1703c61b4b88af7089f9f4f09eba.png

https://blog.csdn.net/m0_74068921/article/details/143868721?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-4-143868721-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-4-143868721-null-null.nonecase

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ


相关文章

Docker:技术架构的演进之路(下)

Docker:技术架构的演进之路(下)

冷热分离架构六、冷热分离架构为了进一步提高系统的并发性能,系统进入冷热分离架构阶段。在这个阶段,引入缓存,实现冷热分离。将热点数据放入缓存中,冷数据放入数据库中,实现数据库的快速响应。这种架构的优点是...

Spring AMQP与RabbitMQ深度整合指南:从基础到高级应用(3)

Spring AMQP与RabbitMQ深度整合指南:从基础到高级应用(3)

3.5 声明交换机和队列:在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时,队列和交换机是程序员定义的,将来项目上线,又要交给运维去创建。那么程序员就需要把程序中运行的所有...

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境Docker-OSXsickcodes/Docker-OSX: Docker-OSX 项目尝试通过 Docker 容...

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

1.TCP相关API 和前一期的UDP基本是大差不差的,但是这里提供的方法来模拟对于网卡的操作是有一定的区别的,所示API如下:ServerSocket是Socket类对应到网卡给服务器使用...

RabbitMQ 进阶1(发送者和MQ的可靠性)

RabbitMQ 进阶1(发送者和MQ的可靠性)

我们可以通过 MQ 异步调用,来使程序的性能更好和解耦合。但是如果 MQ 的消息没有成功的被对应的程序处理,那么这样不就会造成数据不一致的情况。因此,我们这里必须要尽可能的确保 MQ 消息的可靠性,即...

【Docker】在 Ubuntu 上安装 Docker 的详细指南

【Docker】在 Ubuntu 上安装 Docker 的详细指南

Docker 是一个开源的平台,可以让开发者打包应用及其依赖项为一个可移植的容器。本文将详细介绍如何在 Ubuntu 上安装 Docker,包括安装步骤、常见命令以及一些注意事项。一、准备工...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。