当前位置: 首页 > news >正文

【Docker 03】Docker Registry - 镜像仓库

🌈 一、什么是镜像仓库

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

image-20250608202611034

🌈 二、镜像仓库的分类

⭐ 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 pulldocker image pull拉取镜像
docker pushdocker 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]

相关文章:

  • 基于uni-app for HarmonyOS5 的跨平台组件库开发指南,以及组件示例
  • 安宝特科技丨Pixee Medical产品获FDA认证 AR技术赋能骨科手术智能化
  • 热烈祝贺埃文科技正式加入可信数据空间发展联盟
  • 无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
  • PydanticAI 作为 MCP 客户端示例
  • 报文口令重写功能分析(以某巢为例)
  • AI知识库调用全攻略:四种实战方法与技术实现
  • 读书笔记:83页华为数据之道提炼整理【附全文阅读】
  • 浅谈 ST 表(Sparse Table,稀疏表)
  • 规则与人性的天平——由高考迟到事件引发的思考
  • 从零手写Java版本的LSM Tree (六):WAL 写前日志
  • 从零手写Java版本的LSM Tree (七):压缩策略
  • 第二章:文本处理与表示的基础 —— 解码语言的奥秘
  • 运放——单电源供电和双电源供电
  • PyG测试GCN无线通信网络拓扑推理方法时间复杂度
  • Windows11+VS2019配置Libigl-2.4.1
  • Green Gold Label 绿金标认证
  • el-switch文字内置
  • 【Linux指南】用户与系统基础操作
  • 华为OD机试-最短木板长度-二分法(A卷,100分)
  • 做网站需要懂什么/淘宝seo搜索引擎原理
  • 网站我优化/百度号码
  • 网站开发增值税/网络推广方案怎么写
  • 做外贸的网站平台有哪些/企业推广网
  • 做酒的网站/长春seo排名公司
  • 重庆二级站seo整站优化排名/seo关键词优化排名