0
点赞
收藏
分享

微信扫一扫

​​docker tag​​ 命令

docker tag 命令是 Docker 中一个非常基础且重要的命令,主要用于为镜像(image)创建一个别名(tag)。这个别名可以包含仓库地址、项目名称和版本信息,是镜像管理和分发的关键步骤。

1. 命令作用

docker tag 的核心作用是为一个已存在的 Docker 镜像创建一个新的标签(tag)。这并不会创建新的镜像,而是为同一个镜像添加一个额外的引用名称。

这在以下场景中非常有用:

  • 准备将本地镜像推送到远程仓库(如 Docker Hub、阿里云容器镜像服务等)。
  • 为镜像的不同版本打上清晰的标签(如 v1.0latest)。
  • 组织和管理本地镜像。

2. 基本语法

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • SOURCE_IMAGE: 源镜像名称(或ID)。
  • TAG: 可选的标签,默认为 latest
  • TARGET_IMAGE: 目标镜像名称,通常包含:
  • 仓库地址(Registry): 如 docker.io(Docker Hub)、registry.cn-hangzhou.aliyuncs.com(阿里云)。
  • 命名空间/项目名(Namespace/Repository): 如 librarymyproject
  • 镜像名: 如 ubuntunginx
  • TARGET_TAG: 可选的目标标签,如 v1.0stablelatest

3. 镜像命名规范(TARGET_IMAGE)

完整的镜像标签格式为:

[registry[:port]/][namespace/]repository[:tag]

组成部分

说明

示例

registry[:port]

镜像仓库地址,省略时默认为 docker.io

registry.cn-hangzhou.aliyuncs.com

namespace

命名空间,个人用户通常是用户名,组织用户是组织名

library(官方镜像), myusername

repository

镜像仓库名

ubuntunginxmyapp

tag

版本标签,默认为 latest

20.041.21latest

4. 使用示例

✅ 示例1:为本地镜像打标签以便推送到 Docker Hub

# 假设你有一个本地镜像 myapp:dev
docker tag myapp:dev myusername/myapp:1.0

之后你可以使用 docker push 推送到 Docker Hub:

docker push myusername/myapp:1.0

✅ 示例2:推送到私有仓库(如阿里云)

docker tag myapp:dev registry.cn-hangzhou.aliyuncs.com/myproject/myapp:v1.0

推送:

docker push registry.cn-hangzhou.aliyuncs.com/myproject/myapp:v1.0

✅ 示例3:为同一个镜像添加多个标签

docker tag myapp:1.0 myapp:latest
docker tag myapp:1.0 myapp:stable

此时 myapp:1.0myapp:latestmyapp:stable 指向同一个镜像。

✅ 示例4:使用镜像 ID 打标签

docker tag abc123456789 registry.cn-hangzhou.aliyuncs.com/myproject/webapp:prod

5. 查看镜像

使用 docker images 查看打标签后的结果:

docker images

输出示例:

REPOSITORY                                               TAG       IMAGE ID       CREATED        SIZE
myapp                                                    latest    abc123456789   2 hours ago    120MB
myusername/myapp                                         1.0       abc123456789   2 hours ago    120MB
registry.cn-hangzhou.aliyuncs.com/myproject/myapp        v1.0      abc123456789   2 hours ago    120MB

可以看到,虽然名称不同,但 IMAGE ID 相同,说明是同一个镜像。

6. 注意事项

  • 标签是引用,不是复制docker tag 不会复制镜像数据,只是增加一个指向该镜像的标签。
  • 删除标签不影响镜像:使用 docker rmi tag_name 删除标签,只要还有其他标签或容器在使用该镜像,镜像本身不会被删除。
  • 推荐使用有意义的标签:避免过度依赖 latest,建议使用语义化版本(如 v1.2.0)。
  • 推送前必须打标签docker push 要求镜像名称中包含仓库地址和命名空间(如果是推送到非 Docker Hub 的 registry)。

总结

docker tag 是 Docker 镜像管理的基石命令,用于重命名或准备镜像以供推送。掌握其命名规范和使用方法,是进行镜像发布、CI/CD 流程和团队协作的必备技能。


举报

相关推荐

0 条评论