Docker 教程

Docker 推送镜像到仓库

在 Docker 中,使用 docker image push 命令将指定的镜像推送到镜像仓库中,类似 Git 将本地代码推送到代码仓库一样。

语法

语法如下:

用法:docker image push [OPTIONS] NAME[:TAG]

上传镜像到镜像仓库。

别名:
  docker image push、docker push

选项
  -a,--all-tags   将镜像的所有标签推送到版本库中
      --disable-content-trust   跳过镜像签名(默认为 true)
      --platform string   将特定平台的清单作为单平台镜像推送到仓库。
          不会推送映像索引,这意味着其他清单(包括证明)将不会保留。
        os[/arch[/variant]]': 明确的平台(例如 linux/amd64)
  -q,--quiet(静音):抑制冗长输出

示例

推送到默认仓库

假设你已经构建了一个名为 myapp 的镜像,并且想要推送到 Docker Hub。首先确保你已经登录到 Docker Hub:

(1)使用 docker login 登录到 Docket Hub

(2)使用 docker image push myapp 命令推送镜像。如果你的镜像没有指定标签,默认是 latest。如果要推送特定标签的镜像,可以使用 myapp:tag 的格式,例如:docker image push myapp:v1

推送到私有仓库

假设你有一个私有仓库地址为 myregistry.com。同样,确保你已经登录到这个私有仓库。

(1)使用 docker login myregistry.com 登录到私库

(2)使用如下命令推送镜像:

docker image push myregistry.com/myapp

docker image push myregistry.com/myapp:tag

推送多架构镜像

如果你的镜像支持多种架构,例如同时有 AMD64 和 ARM64 架构的版本,可以使用以下方式推送:

首先,确保你的镜像已经标记为多架构镜像。例如:

docker manifest create myapp:multiarched myapp-amd64:latest myapp-arm64:latest

该命令用于创建一个多架构的 Docker 清单(manifest),命名为 myapp:multiarched,并将 myapp-amd64:latest(适用于 AMD64 架构)和 myapp-arm64:latest(适用于 ARM64 架构)两个镜像包含在这个清单中。

注意:多架构清单允许在不同的硬件架构上运行相同的容器镜像,而无需为每个架构单独拉取镜像。

docker manifest annotate myapp:multiarched myapp-amd64:latest --os linux --arch amd64

该命令用于为 myapp:multiarched 清单中的 myapp:multiarched 添加关于 myapp-amd64:latest 镜像的注释信息。具体来说,指定这个镜像的操作系统为 Linux,架构为 AMD64。

docker manifest annotate myapp:multiarched myapp-arm64:latest --os linux --arch arm64

类似上一个命令,这个命令为 myapp:multiarched 清单中的 myapp-arm64:latest 镜像添加注释,指定操作系统为 Linux,架构为 ARM64。

docker manifest push myapp:multiarched

这个命令将创建好并注释过的多架构清单 myapp:multiarched 推送到镜像仓库。这样,其他用户可以通过拉取这个多架构清单来获取适用于不同架构的镜像,而无需分别拉取不同架构的镜像。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号