点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。
在 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 推送到镜像仓库。这样,其他用户可以通过拉取这个多架构清单来获取适用于不同架构的镜像,而无需分别拉取不同架构的镜像。
点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。