【Docker 03】Docker Registry - 镜像仓库

一、什么是镜像仓库

  • 镜像是 Docker 的三大组件之一,Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,则 Docker 会从镜像仓库中下载该镜像。
  • 从字面意思上来说,==镜像仓库(Docker Registry)==是个用来存储镜像的地方。镜像仓库不止能用来存储镜像,还提供了管理和分发镜像的功能,并且提供了登录认证能力(提供了用户的注册、登录、登出能力),建立了仓库的索引(提供了镜像的索引信息,方便检索)。
    • 整个 Docker 网站就可以理解为一个 Registry。
  • 镜像仓库(Registry)管理着多个 Repository(通过命名进行区分),每个 Repository 包含了 1 ~ n 个镜像(通过镜像名和标签 tag 进行区分)。
    • 元数据:用来描述镜像的数据(如镜像 ID、镜像的 CPU 类型、镜像有没有漏洞、有几个漏洞、这个镜像存在于哪个磁盘上等)。
    • blob:实实在在的数据,要占硬盘的。

【Docker 03】Docker Registry - 镜像仓库_第1张图片

二、镜像仓库的分类

⭐ 1. 按是否对外开发进行划分

  1. 公有仓库:如阿里云、腾讯云、DockerHub 等放在公有网络上,不用登录就可以下载镜像。
  2. 私有仓库:不对外开放,通常只位于私有网络,只有公司的内部人员可以使用。

⭐ 2. 按供应商和面向群体进行划分

  1. sponsor registry:第三方 registry,供客户和 Docker 社区版使用。
  2. mirror registry:第三方 registry,只让客户使用(如阿里云,只有注册用户才能使用)。
  3. vendor registry:由发布 Docker 镜像的供应商提供的 registry(如 Google 和 Redhat 提供了镜像仓库服务)。
  4. private registry:通过没有防火墙和额外的安全层的私有实体提供的 registry,仅供内部使用。

三、镜像仓库的使用流程

  • 通过 docker login 命令登录仓库。
  • 通过 docker pull 命令拉取需要的镜像。
  • 通过 dockerfile / commit 等方式制作完镜像通过 docker push 命令上传到仓库。

镜像仓库的拉取机制

  • 在启动容器时,docker daemon 会试图从本地获取相关的镜像。
  • 如果不存在相关的本地镜像,则会从 Registry 中想在该镜像并保存到本地。

四、镜像仓库命令

命令 别名 功能
docker login 登入仓库
docker pull docker image pull 拉取镜像
docker push docker image push 推送镜像
docker search 查找镜像
docker logout 登出仓库

⭐ 1. 登入仓库 docker login

  • 用于登录到一个 Docker 镜像仓库,如果没有指定镜像仓库的地址(server),则默认为官方仓库(Docker Hub)。

1. 基础语法

docker login [options] [server]

2. 常用选项

  • -u:登录的用户名
  • -p:登录的密码

⭐ 2. 拉取镜像 docker pull

  • 用于从镜像仓库中拉取或更新指定镜像。

1. 基础语法

docker pull [options] name[:tag|@digest]

2. 常用选项

  • -a:拉取所有 tagged 镜像
  • --disable-content-trust:忽略镜像得校验,默认开启

3. 使用示例

docker pull nginx:123.3

⭐ 3. 推送镜像 docker push

  • 用于将本地的镜像上传到镜像仓库(得先通过 docker login 登入到镜像仓库)。

1. 基础语法

docker push [options] name[:tag]

2. 常用选项

  • -a:推送所有 tagged 镜像
  • --disable-content-trust:忽略镜像得校验,默认开启

3. 使用示例

docker push myapache:v1

⭐ 4. 查找镜像 docker search

  • 用于从 Docker Hub 中查找镜像。

1. 基础语法

docker search [options] 镜像名

2. 常用选项

  • --no-trunc:显示完整得镜像描述
  • -f<过滤条件>:列出收藏数不小于指定值的镜像

3. 使用示例

# 从 Docker Hub 中查找所有镜像名包含 nginx,且收藏数 (star) 大于 10 的镜像
docker search -f stars=10 nginx

⭐ 5. 登出镜像 docker logout

  • 用于登出一个 Docker 镜像仓库,如果没有指定镜像仓库地址,则默认为官方仓库 Docker Hub。

1. 基础语法

docker logout [server]

你可能感兴趣的:(Docker,docker,eureka,容器)