【Docker】镜像仓库
目录
一.在腾讯云上创建自己的私人镜像仓库
1.1.创建私人镜像仓库
1.2.登陆远程仓库
1.3.推送镜像到远程仓库
1.4.从远程仓库拉取镜像
1.5.退出登陆
二.在阿里云上创建自己的私人镜像仓库
2.1.创建私人镜像仓库
2.2.登陆镜像仓库
2.3.推送镜像到远程仓库
2.4.从镜像仓库上面拉取镜像
2.5.退出登陆
三.镜像仓库常用命令
3.1.docker login
3.2.docker pull
3.3.docker push
3.4.docker search
3.5.docker logout
四.部分镜像命令
4.1.docker images
4.2.docker image inspect
4.3.docker tag
说起镜像仓库,如果说我一开始就叽里呱啦的讲一大堆文字,想必大家肯定是有点懵逼的,所以我先以分别在腾讯云和阿里云创建自己的私人镜像仓库2个例子来告诉大家——镜像仓库的用法。
一.在腾讯云上创建自己的私人镜像仓库
1.1.创建私人镜像仓库
首先大家去腾讯云官网:AI驱动 智领未来_腾讯云优惠活动
进去之后直接搜索







设置好密码之后,我们这里就能在右下角看到登陆实例


我们用我们的云服务器登陆一下

完美啊!!
现在我们就有一个实例了。
但是我们现在还是不能创建镜像仓库,我们需要先创建命名空间
现在我们就需要去创建命名空间



现在我们就能去创建我们的镜像仓库了


注意这个命名空间选择我们上面创建的那个

很好,创建好了。镜像地址是ccr.ccs.tencentyun.com/asdfgh/test1。
我们在右边可以看到有一个快捷指令

点开来看看

Registry就是镜像仓库的意思啊!!
1.2.登陆远程仓库
登陆的语句其实就在快捷指令里面

我们直接复制粘贴即可,现在就来进行登陆

非常完美啊!!
1.3.推送镜像到远程仓库
注意要提前登录
登陆完成了之后,我们往镜像仓库里面推送镜像
这个其实官方都给我们写好了模板

我们只需要把它复制下来,然后把对应的imageId和tag进行替换一下即可。
首先我们看看我们现在有啥镜像

我们选择redis来进行推送
它的imageId是987b553c835f。
我们想要变成的tag是v1.0。
那么我们就能修改成下面这样子
docker tag 987b553c835f ccr.ccs.tencentyun.com/asdfgh/test1:v1.0
当然,我们也可以使用镜像名称:TAG来实现。
docker tag redis:5.0.9 ccr.ccs.tencentyun.com/asdfgh/test1:v2.0

接下来进入我们的推送环节
docker push ccr.ccs.tencentyun.com/asdfgh/test1:[tag]
我们把tag进行修改一下
先推1.0
docker push ccr.ccs.tencentyun.com/asdfgh/test1:v1.0

还是很快的,现在我们推2.0
docker push ccr.ccs.tencentyun.com/asdfgh/test1:v2.0

我们发现他说镜像已经存在了。它已经做了一个校验啊!!
现在我们去镜像仓库里面看看


还是很不错的吧。
1.4.从远程仓库拉取镜像
注意要提前登录
首先我们需要先删除我们之前存在的镜像,然后才能进行拉取实验
# 删除腾讯云镜像
docker rmi ccr.ccs.tencentyun.com/asdfgh/test1:v1.0
docker rmi ccr.ccs.tencentyun.com/asdfgh/test1:v2.0


接下来我们就进行拉取实验
我们怎么把它拉下来呢?
还是回到我们的镜像仓库的快捷指令那里啊

我们把tag换成我们想要的那个即可
比如说我们拉取1.0的
docker pull ccr.ccs.tencentyun.com/asdfgh/test1:v1.0

拉取2.0的
docker pull ccr.ccs.tencentyun.com/asdfgh/test1:v2.0

速度很快!!
1.5.退出登陆
对于退出登陆,官方其实是没有给模板的,但是我们完全可以根据登陆的语句来写出我们的退出登陆的语句

我们只需要那个镜像仓库的网址,然后配合我们的docker logout使用即可
docker logout ccr.ccs.tencentyun.com
接下来我们进行退出登陆

现在我们再去试一下这个push和pull看看

我们发现都被禁止了。
这个其实是因为我们现在创建的私人镜像仓库其实是私有的

对于私有镜像仓库而言,如果我们退出登陆,那么我们不能进行任何pull和push操作。
那么我们可以把它修改成公有仓库


修改成公有仓库后,我们就能在不登陆的情况下进行pull操作
我们拉取一个v1.0的看看
docker pull ccr.ccs.tencentyun.com/asdfgh/test1:v1.0

拉取成功了!!
现在我们来push一下
docker push ccr.ccs.tencentyun.com/asdfgh/test1:v1.0

我们发现居然不能push上去,这就说明了在没有登录的情况下,公有仓库只能pull,不能push。
二.在阿里云上创建自己的私人镜像仓库
2.1.创建私人镜像仓库
我们先去阿里云官网:阿里云权益中心_助力学生、开发者、企业用云快速上云-阿里云



点击一下,我们需要进行个人认证

认证完之后,我们再次点击这个

就会跳转到下面这个界面



随便选一个地方,然后我们点击立即创建,创建好了就跳转到下面这个界面

我们设置一下密码

设置好了之后,变成下面这个样子

同样的,我们需要先创建命名空间,然后才能创建镜像仓库





点击下一步

我们这里选择本地仓库,然后点击创建镜像仓库

同样的啊,阿里云也给我们写好了一些模板

好,我们现在回到我们的云服务器,来好好的测试一下。
2.2.登陆镜像仓库
然后我们进行登陆镜像仓库啊,也就是直接把下面这一句拿过来执行即可


登陆成功了啊
2.3.推送镜像到远程仓库
注意我们要提前登录
也就是下面这3句啊

我们先进行登陆

接下来就只需要执行后面两句即可。
首先我们看看我们本地有啥镜像啊?

我们这次决定推送redis去我们的镜像仓库。
首先我们先来打tag,也就是修改下面这句

我们把ImageId换成987b553c835f,然后设置它被推送到远端仓库的tag是v1.0。
docker tag 987b553c835f crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0
当然,除了使用ImageId,我们还是可以使用REPOSITORY:TAG的组合的!!
这里也就是redis:5.0.9,这里设置它被推送到远端仓库的tag是v2.0。
docker tag redis:5.0.9 crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v2.0

打好tag后,我们需要把它推送到远端仓库里面去

我们先push1.0版本的,
docker push crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0
再push2.0版本的
docker push crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v2.0

我们发现这个情况和腾讯云的差不多!!!
这个时候我们去镜像仓库那边看看

然后我们就能看到下面这个

我们的镜像就算是推送成功了。
2.4.从镜像仓库上面拉取镜像
注意我们要提前登录
首先我们需要先删除我们之前存在的镜像,然后才能进行拉取实验
# 删除镜像
docker rmi crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0
docker rmi crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v2.0


接下来我们就进行拉取实验
还是在那个模板里面

我们只需要修改镜像版本号即可。现在我们仓库里面只有v1.0和v2.0两个镜像版本号

我们先拉v1.0
docker pull crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0

这就算是拉取成功了。
我们现在拉取v2.0版本的
docker pull crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v2.0

很完美!
2.5.退出登陆
这里其实没有给出退出登陆的模板,但是我们可以根据登陆的模板简单改一下

我们把最后那个网址给复制下来,我们直接修改成下面这个即可
docker logout crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com

现在我们再次测试一下我们的push和pull能不能正常运行
先来pull
docker pull crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0

这个错误表明 Docker 无法拉取指定的镜像。
再试一试push
docker push crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0

我们发现也被禁止了!!!
这个其实是因为我们的镜像仓库是私有的(没有登陆,不能进行pul,push等操作)

我们可以把我们的仓库换成公开的,就能实现不登陆镜像仓库,从而进行pull等操作



现在我们再次pull
docker pull crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v1.0

这个其实是代表拉取成功了。
接下来我们进行push,我们推2.0的
docker push crpi-0b0qjj2vcfgwy3a8.cn-hangzhou.personal.cr.aliyuncs.com/space_learning/test1:v2.0

我们发现push不了!!现在我们就能得出结论了
私人镜像仓库和公开镜像仓库的访问权限区别:
-
公开镜像仓库:任何人都可以拉取(pull)镜像,无需认证。但推送(push)镜像通常需要认证。
-
私人镜像仓库:只有经过认证的用户才能拉取和推送镜像。
三.镜像仓库常用命令
如果说我们想要了解命令的更多信息的话,我们完全可以去官网:



点进去之后搜索一下命令即可。

3.1.docker login
docker login 命令用于登录到指定的 Docker 镜像仓库。
若未显式指定仓库地址,则默认登录到 Docker 官方仓库 Docker Hub。
登录成功后,用户方可执行推送(push)或拉取(pull)私有镜像等需身份验证的操作。
语法格式如下:
docker login [OPTIONS] [SERVER]
常用参数说明:
-
-u, --username:指定登录时使用的用户名。 -
-p, --password:指定用户对应的密码。
使用示例:
docker login -u 用户名 -p 密码


如果我们想要了解更多,完全可以执行下面这个
docker login --help
这个没啥好讲的!!
3.2.docker pull
Docker pull 命令用于从镜像仓库(如 Docker Hub 或私有仓库)拉取或更新指定的镜像。
通过该命令,用户可以将远程仓库中的镜像下载到本地,为后续容器创建和运行提供基础。
其基本语法格式如下:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
该命令还有一个等效别名:
docker image pull
常用参数说明:
-
-a:拉取所有被标记的镜像(即所有可用的版本)。 -
--disable-content-trust:跳过镜像校验。默认情况下,Docker 会启用内容信任机制对镜像进行验证,使用该参数可禁用此行为。
补充说明:
-
如果未指定标签(TAG),Docker 默认使用
latest标签拉取镜像。 -
可以通过指定镜像摘要(DIGEST)拉取特定版本的镜像,确保获取的镜像内容与预期完全一致。
-
该命令支持从多个镜像仓库拉取镜像,只需在镜像名称前加上仓库地址即可。
例 1:拉取默认的最新版本
这是最简单、最常用的命令。它会拉取标签为 latest 的镜像(通常代表该仓库的最新稳定版)。
docker pull nginx
这等价于:
docker pull nginx:latest
执行后,Docker 会从仓库下载最新的 Nginx 镜像。
例 2:拉取指定版本的镜像
如果你想获取一个特定的版本,而不是最新的,可以使用标签 :TAG。
docker pull nginx:1.23.4-perl
这个命令会精确地拉取包含 Perl 模块的 Nginx 1.23.4 版本的镜像。这在需要环境一致性(例如生产部署)时非常重要。
例 3:拉取其他仓库的镜像
docker pull 不仅可以从 Docker Hub 拉取官方镜像,还可以拉取来自其他仓库(如第三方服务商或私有仓库)的镜像。这需要指定完整的仓库地址。
docker pull ubuntu:22.04
方式一:使用tag进行下载
注意:我们这里是去了别人的公有镜像仓库来拉取镜像的!!
大家先去docker hub官网:Docker Hub Container Image Library | App Containerization
我们搜索nginx



我们搜索一个tag,1.23.4

然后我们选择第一个,也就是tag是1.23.4-perl
那么我们怎么使用docker pull呢
docker pull nginx:1.23.4-perl

这个下载时间会有点慢,
docker pull nginx:1.23.4-perl 这条命令会优先从我们配置的国内镜像源(加速器)下载。这相当于走了一条通往 Docker Hub 的“高速捷径”,有效避免了直连海外仓库可能遇到的网络缓慢和连接不稳定的问题,是提升国内 Docker 使用体验的关键一步。

方式二——使用id进行下载
注意:我们这里是去了别人的公有镜像仓库来拉取镜像的!!
我们还是在那个官网上面

我们点击第一个


然后我们就可以通过下面这个命令进行下载
docker pull nginx@sha256:967e4169bc92cf351d0934cc76eed9eeab4d02a680a7036eb4332565d10750f6


等待一会也是能正常运行的。
3.3.docker push
Docker push 命令用于将本地构建的镜像上传到指定的镜像仓库(如 Docker Hub、私有仓库或其他第三方仓库)。
在使用该命令前,必须先通过 docker login 命令登录到目标镜像仓库。
其基本语法格式为:
docker push [OPTIONS] NAME[:TAG]
此命令也可使用以下别名形式执行:
docker image push
常用参数说明:
-
-a:推送所有带有标签(Tag)的本地镜像。 -
--disable-content-trust:跳过镜像的完整性校验。Docker 默认开启内容信任机制以验证镜像来源可信,此参数可用于禁用该验证。
示例1
首先这个必须要先需要登陆(docker login)的啊!!才能使用这个docker push

示例2——将本地标记好的 Docker 镜像推送到 Docker Hub 上的个人仓库
首先我们需要在Docker Hub 上创建好个人仓库
我们先登陆这个hubdocker的官网,点击下面的那个创建仓库



也就是docker push erdfsdfsa/mybitnginx:tagname
这一句其实是 Docker 推送镜像的标准格式模板
我们来解释一下是什么意思
- docker push:推送镜像的命令
- erdfsdfsa:您的 Docker Hub 用户名
- mybitnginx:您刚创建的个人仓库名称
- tagname:占位符,需要替换为实际的标签名
那么我们怎么做才能push到我们的个人仓库里面呢?
我们往下看
首先我们必须需要进行登陆啊!!!
当然,由于某些原因,我这里实现不了
docker login
接下来我们给镜像打标签

docker tag nginx:1.23.4-perl erdfsdfsa/mybitnginx:v1.23.4-perl
这条docker tag命令是给一个已有的本地镜像打标签(tag),类似于给镜像起一个别名或者复制一个引用。
让我们分解一下:
docker tag:是Docker的命令,用于给镜像打标签。
nginx:1.23.4-perl:是源镜像的名称和标签。这里指的是一个名为nginx,标签为1.23.4-perl的镜像。这个镜像应该已经存在于本地。
erdfsdfsa/mybitnginx:v1.23.4-perl:是新标签,其中:
- erdfsdfsa:是Docker Hub上的用户名。
- mybitnginx:是仓库名(repository name)。
- v1.23.4-perl:是标签名。
执行这个命令后,本地就会有一个新的镜像标签,指向同一个镜像ID(相当于给同一个镜像起了两个名字)。然后,你可以使用这个新标签来推送镜像到Docker Hub(或者其它仓库)或者在其他地方使用。
注意:
- 这个命令不会创建新的镜像层,只是创建一个新的标签指向现有的镜像。
- 举例来说,如果你想要将镜像推送到Docker Hub,你需要先登录(docker login),然后使用docker push erdfsdfsa/mybitnginx:v1.23.4-perl来推送。
- 如果本地没有nginx:1.23.4-perl这个镜像,你需要先拉取(docker pull nginx:1.23.4-perl)或者构建它。
接下来我们执行下面这句
docker push erdfsdfsa/mybitnginx:v1.23.4-perl
它的作用就是将本地标记好的 Docker 镜像推送到 Docker Hub 上的个人仓库
- erdfsdfsa:您的 Docker Hub 用户名
- mybitnginx:在您账户下创建的仓库名称
- v1.23.4-perl:镜像的版本标签

当然,我这里还是因为这个梯子的原因,我们这里实现不了。
如果说我们push成功了,那么我们在仓库那里的tag界面就能看到我们推送上去的镜像

这个时候我们也能通过docker pull来进行拉取我们推送的镜像了。
总结一下关键点:
- 先登录:docker login(不登录会报错 requested access to the resource is denied)。
- 先打标签:镜像名称必须符合 [仓库地址]/[用户名或项目名]/[镜像名]:[标签] 的格式,否则不知道往哪里推。使用 docker tag 命令来创建符合目标仓库规范的标签。
- 再推送:使用 docker push [打好的新标签]。
3.4.docker search
简单来说,docker search 就像 Docker 镜像的搜索引擎。
它的主要作用是在 Docker Hub(默认的公共镜像仓库)上查找你感兴趣的镜像。
当你想使用某个软件(比如 Nginx、MySQL、Redis)的 Docker 镜像,但又不知道具体的镜像名称或想看看有哪些可选的、评价好的镜像时,这个命令就非常有用了。
我们不需要提前docker login。
因为docker search命令是公开的,它查询的是Docker Hub上的公共镜像。登录(docker login)主要用于拉取私有镜像或向Docker Hub推送镜像(需要认证的操作)。
所以,即使不登录,也可以使用docker search命令。
docker search [OPTIONS] TERM
TERM:这是命令中唯一必需的部分。它就是你要搜索的关键词。比如你想找和 nginx 相关的镜像,这里就填 nginx。
[OPTIONS]:是可选的参数,用于调整搜索结果的展示方式和过滤条件。
两个关键参数:
1. --no-trunc
- 功能:不截断描述信息。
- 为什么要用它? 默认情况下,docker search 输出的 “DESCRIPTION” 列是有长度限制的,如果描述文字太长,会被截断并以 “...” 结尾。使用这个参数后,它会显示完整的描述信息,让你能更清楚地了解这个镜像的用途。
- 使用对比:
- 默认情况:描述可能显示为 Official build of Nginx...
- 使用 --no-trunc:描述会完整显示为 Official build of Nginx.
2. -f, --filter
- 功能:根据条件过滤搜索结果。
- 用法:-f <过滤条件>
- 样例 -f stars=10
- 这里的 stars 指的是镜像在 Docker Hub 上获得的“星星”(收藏/点赞)数量,是衡量镜像流行度和质量的一个重要指标。
- stars=10 的意思是:只显示收藏数大于等于 10 的镜像。这样可以过滤掉那些非常冷门或可能无人维护的镜像。
我们简单运行一下


3.5.docker logout
docker logout 用于退出已经登录的Docker镜像仓库。如果你没有指定服务器地址,默认会退出登录Docker Hub。
使用场景:
当你在一台机器上使用docker login登录了某个镜像仓库后,你的认证信息会被保存在本地。为了安全起见,如果你是在公共计算机或临时环境中使用,完成操作后应该使用docker logout来清除登录凭证。
语法:
docker logout [SERVER]
参数:
[SERVER]:可选参数,指定要登出的镜像仓库地址(和docker login的一样)。如果不指定,默认为官方仓库Docker Hub。
样例:
docker logout
这条命令会退出当前用户登录的Docker Hub。
注意:
- 如果你登录了多个镜像仓库,你需要分别对每个仓库执行logout,或者指定仓库地址退出特定的仓库。
- 例如,如果你之前登录了私有仓库registry.example.com,那么你可以使用:
- docker logout registry.example.com
- 这样就会只注销该私有仓库的登录信息,而不会影响你登录的Docker Hub(如果你也登录了的话)。
我们简单看两个例子即可


四.部分镜像命令
4.1.docker images
docker images 是 Docker 中最基础且最常用的命令之一,主要用来查看和管理本地存储的 Docker 镜像。
1.列出所有镜像

各列含义:
-
REPOSITORY: 镜像来源(仓库名)
-
TAG: 镜像标签(版本标识)
-
IMAGE ID: 镜像唯一标识(SHA256哈希的前12位)
-
CREATED: 镜像创建时间
-
SIZE: 镜像大小
2. 按仓库名过滤

3. 按仓库名和标签精确过滤

4.2.docker image inspect
docker image inspect 是一个用于获取 Docker 镜像底层详细信息的强大工具。
你可以把它想象成给一个镜像做一次“全身CT扫描”,它能揭示出从镜像的创建历史、配置、到其内部文件系统层级等所有细节。
它与 docker images(列出镜像)命令有本质区别:
- docker images:像看一个文件列表,只告诉你镜像名称、标签、ID、大小等概要信息。
- docker image inspect:像打开一个文件的属性面板或查看其源代码,展示其全部元数据。
我们看看
docker image inspect [OPTIONS] IMAGE [IMAGE...]
[OPTIONS]
- 可选参数。最常用、也几乎是唯一需要记的选项是 --format 或 -f。
- 作用:用于格式化输出,只提取你关心的特定信息,而不是输出所有的JSON数据。
IMAGE [IMAGE...]
必填参数。指定你要查看哪个或哪些镜像。
IMAGE 可以是:
- 镜像名:标签:最直观的方式,例如 nginx:1.23.3。
- 镜像ID:更精确的方式,例如 d8a4a6a6c5b5。可以只输入ID的前几位,只要它能唯一标识一个镜像即可。
[IMAGE...] 中的 ... 表示你可以同时查看多个镜像的信息,只需用空格隔开。例如:docker image inspect nginx:latest redis:alpine
我们先看最简单的例子



我们发现有很多信息
同样,我们可以通过id来进行查询

查询到的结果和上面是一模一样的。
4.3.docker tag
你可以把 docker tag 命令理解为给一个已有的本地镜像“起别名”或者“贴标签”。这个操作本身非常简单,不产生新的镜像文件(不占用额外的磁盘空间),但它对于镜像的管理和分发至关重要。
1. 核心功能:为什么需要“标记”?
想象一下,你本地有一个镜像,它的“身份证”可能是一长串复杂的ID,比如 4e2eef34f76a。这对人类来说非常不友好。docker tag 的作用就是给这个镜像一个人类可读的名字,并将其与一个目标仓库关联起来。
它的主要目的有两个:
- 规范化命名,为推送做准备:Docker 要求,如果你想将镜像推送到一个镜像仓库(如 Docker Hub、阿里云容器镜像服务、你私有的 Harbor 等),这个镜像的名字必须符合 [仓库地址]/[用户名/项目名]:[标签] 的格式。docker tag 就是用来创建这个合规名字的。
- 创建镜像别名:你可以为一个镜像创建多个标签。例如,同一个镜像,你可以同时标记为 my-app:latest 和 my-app:v1.0。
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
我们拆解一下这两个参数:
SOURCE_IMAGE[:TAG]
- 这是你本地已经存在的那个镜像。
- 它可以用 镜像ID(如 4e2eef34f76a)、镜像名(如 ubuntu)或 镜像名+标签(如 ubuntu:22.04)来指定。
- 如果不写 :TAG,默认使用 :latest 标签。
TARGET_IMAGE[:TAG]
- 这是你希望给源镜像起的“新名字”。
- 它的格式决定了这个镜像的最终去向。
- 如果不写 :TAG,同样默认使用 :latest 标签。
重要注意事项
- 它不是复制:docker tag 不会在磁盘上创建新的镜像层或副本,它只是在镜像的元数据中添加了一个新的引用。非常轻量、快速。
- 删除一个标签:使用 docker rmi TARGET_IMAGE:TAG 删除一个标签,只是删除了这个“名字”。只要还有别的标签指向这个 IMAGE ID,镜像文件本身就不会被删除。只有当最后一个标签也被删除时,镜像文件才会被真正移除。
- :latest 的陷阱::latest 只是一个常规的标签,并不代表这就是最新的或最稳定的版本。它是一个默认标签,但 Docker 不会自动为你维护它。你需要明确地使用 docker tag 将新镜像标记为 :latest。
样例: docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04
这个命令做了什么?
- 查找源镜像:Docker 会在本地查找名为 ubuntu,标签为 22.04 的镜像。
- 创建新标签:它为找到的源镜像创建一个新的标签(别名),这个新标签是 myregistry.com/myubuntu:22.04。
- 验证:执行 docker images,你会看到两个镜像条目(比如 ubuntu:22.04 和 myregistry.com/myubuntu:22.04),但它们拥有完全相同的 IMAGE ID。这证明它们本质上是同一个镜像文件,只是有两个不同的名字。
执行完 docker tag 后,你的本地镜像列表看起来会是这样:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 4e2eef34f76a 2 weeks ago 77.8MB
myregistry.com/myubuntu 22.04 4e2eef34f76a 2 weeks ago 77.8MB
注意:IMAGE ID 是相同的。
还记得我们上面使用腾讯云私人镜像仓库的例子吗!!!

我们发现要想推镜像去我们的镜像仓库,我们第一步就是使用docker tag来给我们的镜像打标签!!
至于具体过程我就不讲了,因为我在最开始的时候就讲了2次!!
当然阿里云的也是一样的!!

