码头工人推

描述

将映像或存储库推送到注册表

用法

$ docker push [OPTIONS] NAME[:TAG]

扩展说明

用于docker image push将映像共享到Docker Hub 注册表或自托管的映像。

docker image tag有关有效图像和标签名称的更多信息,请参考参考。

杀死docker image push通过按压过程中,例如CTRL-c它是在一个终端运行时,终止该按压操作。

在docker push期间显示进度条,其中显示未压缩的大小。实际推送的数据量将在发送之前进行压缩,因此进度条不会反映上载的大小。

注册表凭证由docker login管理。

并发上传

默认情况下,Docker守护程序一次将推送五层图像。如果您使用的是低带宽连接,则可能会导致超时问题,并且您可能希望通过--max-concurrent-uploads守护程序选项来降低这种情况。有关更多详细信息,请参见 守护程序文档

有关此命令的示例用法,请参阅下面的示例部分

选项

名称,简写 默认 描述
--all-tags-a 将所有标记的图像推送到存储库中
--disable-content-trust true 跳过图像签名
--quiet-q 禁止详细输出

例子

将新映像推送到注册表

首先,通过找到容器ID(使用docker container ls)保存新图像,然后将其提交给新的图像名称。请注意,仅a-z0-9-_.在命名图像时才允许:

$ docker container commit c16378f943fe rhel-httpd:latest

现在,使用图像ID将图像推送到注册表。在此示例中,注册表在名为的主机上,registry-host并在port上进行侦听5000。为此,请使用主机名或IP地址以及注册表的端口标记映像:

$ docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest

$ docker image push registry-host:5000/myadmin/rhel-httpd:latest

通过运行以下命令检查其是否有效:

$ docker image ls

您应该同时看到rhel-httpdregistry-host:5000/myadmin/rhel-httpd 列出。

推送图像的所有标签

使用-a(或--all-tags)选项来推送本地图像的所有标签。

以下示例为一个映像创建多个标签,并将所有这些标签推送到Docker Hub。

$ docker image tag myimage registry-host:5000/myname/myimage:latest
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0.1
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0
$ docker image tag myimage registry-host:5000/myname/myimage:v1

现在,该图像被标记为多个名称:

$ docker image ls

REPOSITORY                          TAG        IMAGE ID       CREATED      SIZE
myimage                             latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1         6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0       6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0.1     6d5fcfe5ff17   2 hours ago  1.22MB

使用该--all-tags选项推送时,将推送registry-host:5000/myname/myimage 图像的所有标签:

$ docker image push --all-tags registry-host:5000/myname/myimage

The push refers to repository [registry-host:5000/myname/myimage]
195be5f8be1d: Pushed
latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0.1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527

上级命令

命令 描述
码头工人 Docker CLI的基本命令。