当前位置:首页 > 技术 > 正文内容

Docker 镜像仓库操作指南

访客 技术 2026年7月14日 1

镜像仓库与注册中心概念解析

在 Docker 生态中,镜像仓库(Repository)是用于存储和组织容器镜像的逻辑单元。一个仓库通常包含同一软件的不同版本镜像,通过标签(tag)进行区分。而注册中心(Registry)则是托管这些仓库的服务实体,可以理解为存放多个仓库的服务器节点。例如,在地址 registry.example.com/nginx 中,registry.example.com 是注册中心主机名,nginx 是具体的镜像仓库名称。

公共镜像平台:Docker Hub

Docker Hub 是由 Docker 官方维护的全球性公共注册中心,用户可以通过其网页界面浏览、创建或删除公开/私有的镜像仓库。此外,它支持与 GitHub、GitLab 等代码托管平台集成,实现自动化构建流程。

国内加速配置建议

由于网络延迟问题,中国大陆用户访问官方 Registry 可能较慢。推荐使用国内第三方提供的 registry mirror 服务,如 DaoCloud、阿里云容器镜像服务等。配置方法通常是在 Docker 守护进程的启动参数中添加 --registry-mirror 指令,或将镜像源写入 /etc/docker/daemon.json 文件以持久化设置。

官方镜像与社区镜像区别

官方镜像(Official Images)由 Docker 团队审核并维护,命名简洁,不带用户名前缀,例如 ubuntunginx,其完整路径为 docker.io/library/ubuntu。这类镜像通常基于最小化系统构建,安全性和兼容性较高。相比之下,社区镜像由普通用户上传,命名格式为 用户名/仓库名,如 anliven/myapp,适用于特定场景定制,但需注意来源可信度。

自动化构建机制

Docker Hub 提供 Automated Builds 功能,允许将用户的代码仓库与镜像构建过程绑定。当目标 Git 仓库中的代码发生提交时,系统会自动触发构建任务,生成新的镜像并推送到指定仓库。启用该功能需要以下步骤:

  1. 登录 Docker Hub 并授权连接 GitHub/GitLab 账号;
  2. 创建自动构建项目,选择对应的代码仓库及分支;
  3. 指定 Dockerfile 所在路径(默认为根目录);
  4. 保存后即可在构建日志页面查看每次执行状态。

常用命令行操作

docker images     # 列出本地已下载的所有镜像
docker search     # 在注册中心搜索可用镜像
docker pull       # 从远程仓库拉取镜像到本地
docker login      # 登录到指定的镜像注册中心
docker push       # 将本地镜像推送至远程仓库

示例一:搜索与拉取镜像

[root@host ~]# docker search ubuntu
NAME              DESCRIPTION          STARS    OFFICIAL   AUTOMATED
ubuntu            Debian-based Linux   5919     [OK]
rastasheep/ubuntu-sshd  SSH-enabled Ubuntu   81               [OK]

[root@host ~]# docker pull ubuntu:20.04
Pulling from library/ubuntu
Digest: sha256:abc123...
Status: Downloaded newer image

[root@host ~]# docker images ubuntu
REPOSITORY    TAG       IMAGE ID      CREATED      SIZE
ubuntu        latest    6a2f32de169d  2 weeks ago  117MB
ubuntu        20.04     302fa07d8117  2 weeks ago  188MB

示例二:登录镜像仓库

[root@host ~]# docker login
Username: anliven
Password: ********
Login Succeeded

# 认证信息将加密保存于 ~/.docker/config.json
[root@host ~]# ls -la .docker/
total 8
drwx------ 2 root root 24 Apr 28 10:32 .
dr-xr-x--- 18 root root 4096 Apr 28 10:32 ..
-rw------- 1 root root 99 Apr 28 10:32 config.json

示例三:推送自定义镜像

[root@host ~]# docker images
REPOSITORY          TAG       IMAGE ID      SIZE
hello-world         latest    48b5124b2768  1.84kB

# 给镜像打上用户命名空间标签
[root@host ~]# docker tag 48b5124b2768 anliven/hello-world:test

[root@host ~]# docker images
REPOSITORY           TAG       IMAGE ID      SIZE
anliven/hello-world  test      48b5124b2768  1.84kB
hello-world          latest    48b5124b2768  1.84kB

# 推送至 Docker Hub
[root@host ~]# docker push anliven/hello-world:test
The push refers to repository [docker.io/anliven/hello-world]
test: digest: sha256:c55157... size: 524

# 验证是否可被搜索到
[root@host ~]# docker search anliven/hello-world
NAME                    DESCRIPTION   STARS     OFFICIAL   AUTOMATED
anliven/hello-world                 0

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

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