news 2026/4/18 18:59:17

Docker 镜像仓库:层级、分类、工具与命令,这篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 镜像仓库:层级、分类、工具与命令,这篇就够了

文章目录

    • 一、Docker Registry(镜像仓库)
    • 二、镜像仓库分类
      • 2.1 是否对外开放
      • 2.2 供应商和面向群体
    • 三、镜像仓库工作机制
      • 3.1 镜像仓库使用流程
      • 3.2 实际研发中镜像仓库如何使用
      • 3.3 镜像仓库的拉取机制
    • 四、常用的镜像仓库
      • 4.1 Docker Hub
      • 4.2 国内镜像源
      • 4.3 私有仓库
    • 五、镜像仓库命令
      • 5.1 命令清单
      • 5.2 命令详解
        • 5.2.1. docker login
        • 5.2.2. docker pull
        • 5.2.3. docker push
        • 5.2.4. docker search
        • 5.2.5. docker logout

一、Docker Registry(镜像仓库)

镜像仓库(Docker Registry)负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。

镜像仓库管理多个 Repository,Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签(Tag)来区分。

核心层级关系:

  • 镜像仓库(Registry):
    最上层是「镜像仓库(Registry)」:比如 hub.docker.com,一个 Registry 可以包含多个「仓库(Repository)」,同时自带认证能力(登录 / 登出)和索引功能(检索镜像)。

  • 仓库(Repository):
    每个「Repository」是同一镜像的所有版本集合:比如 nginx 仓库包含 nginx:1.20.1、nginx:1.19.1 等不同版本;ubuntu 仓库包含 ubuntu:18.04、ubuntu:20.04 等。

  • 镜像:
    每个版本对应「镜像名称 + 标签(Tag)」:比如 nginx:latest 是具体的镜像标识。
    镜像的组成一个容器镜像由两部分构成:

镜像的组成:
一个容器镜像由两部分构成

  1. 元数据:由 Dockerfile 生成的描述文件,记录镜像的层数、每层内容、校验值等信息。
  2. 存储数据:存在 blob 文件里,是真正占用磁盘空间的部分,包含镜像的实际内容。

二、镜像仓库分类

2.1 是否对外开放

  1. 公有仓库:像阿里云、Docker Hub 等部署在公有网络上,无需登录即可下载镜像,供大众访问使用。
  2. 私有仓库:不对外开放,通常位于私有网络,仅公司内部人员可使用,保障数据安全性。

2.2 供应商和面向群体

  1. sponsor(赞助)registry:第三方提供的 registry,供客户和 Docker 社区版用户使用。
  2. mirror(镜像)registry:第三方提供的 registry,仅对注册客户开放(如阿里云镜像仓库,需注册后使用)。
  3. vendor(供应商)registry:由发布 Docker 镜像的供应商提供的 registry(如 Google、RedHat 提供的镜像仓库服务)。
  4. private registry:由无防火墙和额外安全层的私有实体提供的 registry,仅供内部使用,适用于企业内部封闭环境。

三、镜像仓库工作机制

3.1 镜像仓库使用流程

  1. 通过docker login登录仓库。
  2. 通过docker pull拉取所需镜像。
  3. 通过 Dockerfile 或commit等方式制作完镜像后,通过docker push上传到仓库。

3.2 实际研发中镜像仓库如何使用

Docker Registry 中的镜像通常由开发人员制作,而后推送至“公共”或“私有”Registry 上保存,供其他人员使用(如部署到生产环境)。具体流程涉及以下环境:

  • 开发环境:开发人员编写代码、制作镜像的环境。
  • 测试环境:需求开发完成后,将镜像拉取到该环境进行测试(pull to test)。
  • 预发布环境:版本测试完成后,发布到与生产环境类似的该环境,提前模拟生产发布。
  • 生产环境:将通过测试的镜像拉取到该环境,正式面向客户提供服务(pull to deploy)。

3.3 镜像仓库的拉取机制

启动容器时,Docker Daemon 会先试图从本地获取相关镜像;若本地镜像不存在,会从 Registry 中下载该镜像并保存到本地,供后续使用。


四、常用的镜像仓库

4.1 Docker Hub

Docker Hub 是 Docker 提供的托管存储库服务,用于查找容器映像并与团队共享,具有以下核心功能:

  • 个人可注册私有仓库,发布自己制作的镜像。
  • 提供镜像检索能力,支持按关键词查找所需镜像。
  • 提供海量官方和认证组织的镜像(如 Nginx、MySQL 等官方镜像)。
  • 支持从 GitHub 和 Bitbucket 自动构建容器镜像,并将其推送到 Docker Hub。
  • 支持 Webhook(基于 HTTP 的回调函数,当指定事件发生时,服务器会自动将相关有效负载发送到客户端的 Webhook URL)。

4.2 国内镜像源

国内从 Docker Hub 拉取镜像有时会因网络问题变慢,可配置国内镜像加速器。国内主流云服务商均提供镜像加速器服务,例如:

  • 阿里云加速器:登录阿里云控制台 → 进入“镜像工具” → “镜像加速器” → 复制加速器地址。
  • 网易云加速器地址:https://hub-mirror.c.163.com
  • 百度云加速器地址:https://mirror.baidubce.com

配置步骤

  1. 编辑(或新建)/etc/docker/daemon.json文件,写入以下内容(若文件已有配置,需在原有结构中添加,确保 JSON 格式正确):
{"registry-mirrors":["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]}
  1. 重新加载配置并重启 Docker:
# 加载配置sudosystemctl daemon-reload# 重启 Dockersudosystemctl restartdocker# 查看 Docker 状态,确认重启成功sudosystemctl statusdocker

4.3 私有仓库

私有镜像仓库是部署在公司或组织内部,用于存储、分发自身应用 Docker 镜像的仓库。在企业自动化发布系统中,从安全角度出发,应用打包镜像通常仅存储在私有仓库,CI/CD 流程通过向私有仓库上传和拉取镜像衔接。

常见的私有仓库工具:

  1. Harbor:VMware 开源的企业级 Docker Registry 项目,基于 Docker 官方 registry 开发,提供管理 UI、基于角色的访问控制(RBAC)、AD/LDAP 集成、审计日志(Audit logging)等企业级功能,且原生支持中文。Harbor 各组件以 Docker 容器形式构建,通过 Docker Compose 部署。
  2. Nexus:Sonatype 发布的仓库管理软件,除作为 Docker 私服外,还常被用作 Maven 私服,支持多类型仓库统一管理。
  3. Docker Registry:Docker 官方提供的私服工具,功能简洁,类似 Docker Hub,适用于企业内部简单的镜像存储需求。

五、镜像仓库命令

5.1 命令清单

命令别名功能备注
docker login-登录镜像仓库登录私有仓库或需认证的公有仓库时必备
docker pulldocker image pull从镜像仓库拉取镜像获取所需镜像的核心命令
docker pushdocker image push将本地镜像推送至镜像仓库分享或备份镜像时使用
docker search-从 Docker Hub 查找镜像需注意:国内因网络原因,该命令可能无法实操,需国外网络支持
docker logout-登出镜像仓库退出当前登录的仓库,保障账号安全

5.2 命令详解

5.2.1. docker login
  • 功能:登录到 Docker 镜像仓库,未指定仓库地址时,默认为官方仓库 Docker Hub(国内需注意网络问题,建议使用国内镜像仓库练习)。
  • 语法
dockerlogin[OPTIONS][SERVER]
  • 关键参数
    • -u:指定登录的用户名。
    • -p:指定登录的密码。
  • 样例
dockerlogin -u 用户名 -p 密码
5.2.2. docker pull
  • 功能:从镜像仓库拉取或更新指定镜像。
  • 语法
dockerpull[OPTIONS]NAME[:TAG|@DIGEST]
  • 别名
dockerimage pull
  • 关键参数
    • -a:拉取该镜像的所有 tagged 版本。
    • --disable-content-trust:忽略镜像的校验(默认开启校验)。
  • 样例
# 拉取 nginx 1.23.3 版本镜像dockerpull nginx:1.23.3
5.2.3. docker push
  • 功能:将本地镜像上传到镜像仓库,需先通过docker login登录仓库。
  • 语法
dockerpush[OPTIONS]NAME[:TAG]
  • 别名
dockerimage push
  • 关键参数
    • -a:推送该镜像的所有 tagged 版本。
    • --disable-content-trust:忽略镜像的校验(默认开启校验)。
  • 样例
# 将本地 myapache:v1 镜像推送到仓库dockerpush myapache:v1
5.2.4. docker search
  • 功能:从 Docker Hub 查找镜像(国内需国外网络支持,否则无法实操)。
  • 语法
dockersearch[OPTIONS]TERM
  • 关键参数
    • --no-trunc:显示完整的镜像描述,避免截断。
    • -f <过滤条件>:按条件过滤结果(如列出收藏数不小于指定值的镜像)。
  • 样例
# 从 Docker Hub 查找所有名称包含 nginx,且 star 数大于 10 的镜像dockersearch -fstars=10nginx
5.2.5. docker logout
  • 功能:登出 Docker 镜像仓库,未指定仓库地址时,默认为官方仓库 Docker Hub(国内建议搭配国内镜像仓库练习)。
  • 语法
dockerlogout[SERVER]
  • 样例
# 登出默认仓库(Docker Hub)dockerlogout# 登出指定仓库(如阿里云镜像仓库)dockerlogoutregistry.cn-hangzhou.aliyuncs.com
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 14:16:24

去耦电容失效模式分析:提升工控设备可靠性的核心要点

以下是对您提供的博文《去耦电容失效模式分析:提升工控设备可靠性的核心要点》进行的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有工程师现场感; ✅ 摒弃模板化标题(如“引言”“总结”),全文以逻辑流驱动,层层…

作者头像 李华
网站建设 2026/4/17 16:58:17

图解说明电源管理的工作模式与流程

以下是对您提供的技术博文进行 深度润色与结构重构后的终稿 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、专业、有“人味”——像一位深耕嵌入式电源管理十年的工程师在和你面对面聊实战; ✅ 所有章节标题重写为 真实、具体、带技术张力的表达 ,摒…

作者头像 李华
网站建设 2026/4/18 3:54:15

3步掌握通达信缠论插件高效配置实战指南

3步掌握通达信缠论插件高效配置实战指南 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 一、核心价值&#xff1a;为什么专业交易者都在用缠论插件&#xff1f; 当你还在手动绘制中枢和线段时&#xff…

作者头像 李华
网站建设 2026/4/18 10:43:30

高效清理重复图片全攻略:AntiDupl智能识别与管理实战指南

高效清理重复图片全攻略&#xff1a;AntiDupl智能识别与管理实战指南 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 在数字存储爆炸的时代&#xff0c;重复图片正悄然…

作者头像 李华
网站建设 2026/4/18 15:30:52

零基础也能搞定:7步搭建专属编程学习平台

零基础也能搞定&#xff1a;7步搭建专属编程学习平台 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 步骤1&#xff1a;准备环境与获取项目 检查系统兼容性 在开始部署前&#xff0c;请确保你的…

作者头像 李华
网站建设 2026/4/17 18:59:51

3步解锁PT站资源共享:Auto Feed JS效率革命

3步解锁PT站资源共享&#xff1a;Auto Feed JS效率革命 【免费下载链接】auto_feed_js PT站一键转载脚本 项目地址: https://gitcode.com/gh_mirrors/au/auto_feed_js 副标题&#xff1a;跨站种子同步与自动化转载方案的技术实践 在PT社区中&#xff0c;种子分享是维持…

作者头像 李华