跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Docker 镜像仓库:层级、分类、常用工具与命令

Docker 镜像仓库负责存储和管理容器镜像,包含 Registry、Repository 和镜像三层结构。按开放程度分为公有仓库和私有仓库,常见工具有 Docker Hub、Harbor 及 Nexus。使用流程涉及登录认证、拉取镜像、构建推送及登出操作,核心命令包括 docker login、pull、push、search 和 logout,配合国内镜像源可解决网络访问问题。

漫步发布于 2026/2/9更新于 2026/10/24105 浏览
Docker 镜像仓库:层级、分类、常用工具与命令

一、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:
# 加载配置
sudo systemctl daemon-reload
# 重启 Docker
sudo systemctl restart docker
# 查看 Docker 状态,确认重启成功
sudo systemctl status docker
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(国内需注意网络问题,建议使用国内镜像仓库练习)。
  • 语法:
docker login [OPTIONS][SERVER]
  • 关键参数:
    • -u:指定登录的用户名。
    • -p:指定登录的密码。
  • 样例:
docker login -u 用户名 -p 密码 
5.2.2. docker pull
  • 功能:从镜像仓库拉取或更新指定镜像。
  • 语法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 别名:
docker image pull 
  • 关键参数:
    • -a:拉取该镜像的所有 tagged 版本。
    • --disable-content-trust:忽略镜像的校验(默认开启校验)。
  • 样例:
# 拉取 nginx 1.23.3 版本镜像
docker pull nginx:1.23.3 
5.2.3. docker push
  • 功能:将本地镜像上传到镜像仓库,需先通过 docker login 登录仓库。
  • 语法:
docker push [OPTIONS] NAME[:TAG]
  • 别名:
docker image push 
  • 关键参数:
    • -a:推送该镜像的所有 tagged 版本。
    • --disable-content-trust:忽略镜像的校验(默认开启校验)。
  • 样例:
# 将本地 myapache:v1 镜像推送到仓库
docker push myapache:v1 
5.2.4. docker search
  • 功能:从 Docker Hub 查找镜像(国内需国外网络支持,否则无法实操)。
  • 语法:
docker search [OPTIONS]TERM
  • 关键参数:
    • --no-trunc:显示完整的镜像描述,避免截断。
    • -f <过滤条件>:按条件过滤结果(如列出收藏数不小于指定值的镜像)。
  • 样例:
# 从 Docker Hub 查找所有名称包含 nginx,且 star 数大于 10 的镜像
docker search -f stars=10 nginx 
5.2.5. docker logout
  • 功能:登出 Docker 镜像仓库,未指定仓库地址时,默认为官方仓库 Docker Hub(国内建议搭配国内镜像仓库练习)。
  • 语法:
docker logout [SERVER]
  • 样例:
# 登出默认仓库(Docker Hub)
docker logout
# 登出指定仓库(如阿里云镜像仓库)
docker logout registry.cn-hangzhou.aliyuncs.com 

目录

  1. 一、Docker Registry(镜像仓库)
  2. 二、镜像仓库分类
  3. 2.1 是否对外开放
  4. 2.2 供应商和面向群体
  5. 三、镜像仓库工作机制
  6. 3.1 镜像仓库使用流程
  7. 3.2 实际研发中镜像仓库如何使用
  8. 3.3 镜像仓库的拉取机制
  9. 四、常用的镜像仓库
  10. 4.1 Docker Hub
  11. 4.2 国内镜像源
  12. 加载配置
  13. 重启 Docker
  14. 查看 Docker 状态,确认重启成功
  15. 4.3 私有仓库
  16. 五、镜像仓库命令
  17. 5.1 命令清单
  18. 5.2 命令详解
  19. 5.2.1. docker login
  20. 5.2.2. docker pull
  21. 拉取 nginx 1.23.3 版本镜像
  22. 5.2.3. docker push
  23. 将本地 myapache:v1 镜像推送到仓库
  24. 5.2.4. docker search
  25. 从 Docker Hub 查找所有名称包含 nginx,且 star 数大于 10 的镜像
  26. 5.2.5. docker logout
  27. 登出默认仓库(Docker Hub)
  28. 登出指定仓库(如阿里云镜像仓库)

更多推荐文章

查看全部
  • Python 与 MySQL 数据库交互实践:自动化数据插入系统
  • LangChain 输出解析器与 LCEL 链构建实战指南
  • MySQL 约束详解:非空、主键与外键的核心作用
  • 基于 DeepSeek 的贪吃蛇游戏开发实战
  • Nginx 编译安装缺失 SSL 模块报错修复指南
  • Java TCP 与 UDP 网络编程实战指南
  • AI Agent 持久记忆实战:Claude Code 接入 MemMachine 全流程
  • 基于 Spring Boot 的 WebSocket 实时通信服务实战
  • 利用 Frontend-Design Skill 提升大模型前端设计能力
  • Python 常见数据类型全面解析
  • C++ 使用 OMPL 库实现 RRT*与 Informed RRT*路径规划对比
  • 数据结构:双向链表概念与实现
  • Lostlife2.0 整合 Llama-Factory 引擎重塑 NPC 对话逻辑
  • OpenClaw 深度解析:构建具备执行能力的 AI 智能体
  • C++ 入门实战指南:从环境搭建到面向对象编程
  • 使用 Frontend-Design Skill 提升大模型前端设计能力
  • GitHub 启用双因素身份验证(2FA)配置指南:使用 TOTP.app 生成动态验证码
  • Java 异常处理:核心原理与实战最佳实践
  • Python 编程语法基础入门教程
  • 基于 Python Flask 与 Vue 的博客系统及实时聊天功能实现

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online