引言:从“码头工人”到“仓库管理员”
作为一名“Docker船长”,我们早已习惯了在Docker Hub这个“公共港口”自由地docker pull各种现成的“集装箱”(镜像)。这就像点外卖,方便快捷。但当我们要打造自己的“独家料理”(企业应用)时,把秘方放在公共区域显然不明智。这时,我们就需要搭建一个私有的、安全的专属厨房仓库——这就是Docker Registry的价值所在。
然而,许多初学者在初次接触私有Registry时,往往会遇到一堆“妖魔鬼怪”:unauthorized: access to the requested resource is not authorized、http: server gave HTTP response to HTTPS client... 这些错误提示仿佛在说:“此路不通,请先读懂藏宝图!”
今天,我们就化身“仓库考古学家”,不仅要把docker push和docker pull这两个动作扒得底朝天,还要亲手绘制一张万无一失的“藏宝图”,让镜像的推送和拉取变得像呼吸一样自然。
第一章:藏宝图的核心——镜像名称的奥秘
在开始寻宝之前,我们必须先看懂“宝藏”的坐标,即镜像的全限定名。
一个完整的镜像名称通常遵循以下格式:
[REGISTRY_HOST[:PORT]/][NAMESPACE/]REPOSITORY[:TAG]
REGISTRY_HOST:PORT:仓库地址。默认是docker.io(Docker Hub)。例如myreg.com:5000就是你的私有Registry地址。NAMESPACE:命名空间,通常用于区分用户或项目,如library(官方镜像)、ubuntu(组织)。REPOSITORY:仓库名,代表一个具体的镜像集合,如nginx。TAG:标签,用于区分同一仓库的不同版本,默认为latest。
关键点: 当你执行docker push myapp:latest时,Docker默认会尝试将其推送到docker.io/library/myapp:latest,这通常会因权限不足而失败。要让Docker知道你的目标是私有仓库,必须在镜像
Docker Registry Push/Pull详解

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



