©
本文档使用
php.cn手册 发布
从注册表中提取图像或存储库
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
名称,简写 | 默认 | 描述 |
---|---|---|
--all-tags,-a | false | 下载存储库中的所有标记图像 |
--disable-content-trust | true | 跳过图像验证 |
命令 | 描述 |
---|---|
docker | Docker CLI的基本命令。 |
大部分图像将在Docker Hub注册表的基础图像上创建。
Docker Hub包含许多预构建的图像,您无需定义和配置自己的图像即可进行尝试pull
。
要下载特定图像或一组图像(即存储库),请使用docker pull
。
如果你是后面的HTTP代理服务器,例如在公司的设置,前打开一个连接到注册表,您可能需要配置多克守护进程的代理设置,使用HTTP_PROXY
,HTTPS_PROXY
和NO_PROXY
环境变量。要在使用的主机上设置这些环境变量systemd
,请参阅控制并使用systemd配置Docker以获取变量配置。
默认情况下,Docker守护进程将一次拉出三层图像。如果您使用的是低带宽连接,则可能会导致超时问题,您可能需要通过--max-concurrent-downloads
守护进程选项降低此问题。有关更多详细信息,请参阅守护程序文档。
要下载特定图像或一组图像(即存储库),请使用docker pull
。如果未提供标签,则Docker Engine将该:latest
标签用作默认标签。该命令会拉出debian:latest
图像:
$ docker pull debian Using default tag: latest latest: Pulling from library/debian fdd5d7827f33: Pull complete a3ed95caeb02: Pull complete Digest: sha256:e7d38b3517548a1c71e41bffe9c8ae6d6d29546ce46bf62159837aad072c90aa Status: Downloaded newer image for debian:latest
Docker映像可以由多个图层组成。在上面的例子中,图像由两层组成,fdd5d7827f33
和a3ed95caeb02
。
图层可以重复使用图层。例如,debian:jessie
图像与两个图层共享debian:latest
。debian:jessie
因此,拉取图像只会拉取其元数据,而不是其图层,因为所有图层都已经存在于本地:
$ docker pull debian:jessie jessie: Pulling from library/debian fdd5d7827f33: Already exists a3ed95caeb02: Already exists Digest: sha256:a9c958be96d7d40df920e7041608f2f017af81800ca5ad23e327bc402626b58e Status: Downloaded newer image for debian:jessie
要查看本地存在哪些图像,请使用以下docker images
命令:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE debian jessie f50f9524513f 5 days ago 125.1 MB debian latest f50f9524513f 5 days ago 125.1 MB
Docker使用内容可寻址的图像存储,图像ID是一个涵盖图像配置和图层的SHA256摘要。在上面的例子中,debian:jessie
并且debian:latest
具有相同的图像ID,因为它们实际上是用不同名称标记的相同图像。由于它们是相同的图像,因此它们的图层只能存储一次,并且不会占用额外的磁盘空间。
有关图像,图层和内容寻址存储的更多信息,请参阅了解图像,容器和存储驱动程序。
到目前为止,您已经通过名称(和“tag”)来拉取图片。使用名称和标签是处理图像的便捷方式。使用标签时,您可以docker pull
再次使用图片,以确保您拥有该图片的最新版本。例如,docker pull ubuntu:14.04
拉取最新版本的Ubuntu 14.04映像。
在某些情况下,您不希望将图像更新为新版本,但更喜欢使用固定版本的图像。Docker使您能够通过摘要来提取图像。当通过拉动摘要的图像,你指定确切的图像的版本,拉其。这样做,可让您将图像“钉”到该版本,并确保您使用的图像始终保持不变。
要知道图像的摘要,请先拉取图像。让我们ubuntu:14.04
从Docker Hub中提取最新的图像:
$ docker pull ubuntu:14.0414.04: Pulling from library/ubuntu 5a132a7e7af1: Pull complete fd2731e4c50c: Pull complete 28a2f68d1120: Pull complete a3ed95caeb02: Pull complete Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 Status: Downloaded newer image for ubuntu:14.04
在pull完成后,Docker会打印图像的摘要。在上面的例子中,图像的摘要是:
sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
在推送到注册表时,Docker还会打印图像的摘要。如果您想固定您刚刚推送的图像版本,这可能会很有用。
当摘取图片时摘要代替标签,例如,通过摘要拉出上面的图片,运行以下命令:
$ docker pull ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2: Pulling from library/ubuntu 5a132a7e7af1: Already exists fd2731e4c50c: Already exists 28a2f68d1120: Already exists a3ed95caeb02: Already exists Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 Status: Downloaded newer image for ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
摘要也可以在FROM
Dockerfile中使用,例如:
FROM ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 MAINTAINER some maintainer <maintainer@example.com>
注意:使用此功能可以及时将图像“钉”到特定版本。因此,Docker不会提取图像的更新版本,其中可能包含安全更新。如果你想拉一个更新的图像,你需要相应地更改摘要。
默认情况下,docker pull
从Docker Hub中提取图像。也可以手动指定要从中注册的注册表路径。例如,如果您已设置本地注册表,则可以指定其路径以从中取消注册。注册表路径类似于URL,但不包含协议说明符(https://
)。
以下命令testing/test-image
从侦听端口5000(myregistry.local:5000
)的本地注册表中获取图像:
$ docker pull myregistry.local:5000/testing/test-image
注册表凭证由docker登录管理。
Docker使用https://
协议与注册表进行通信,除非允许通过不安全的连接访问注册表。有关更多信息,请参阅不安全的注册表部分。
默认情况下,docker pull
拉一单从注册表图像。存储库可以包含多个图像。要从存储库中提取所有图像,请在使用时提供-a
(或--all-tags
)选项docker pull
。
此命令从fedora
储存库:
$ docker pull --all-tags fedora Pulling repository fedora ad57ef8d78d7: Download complete 105182bb5e8b: Download complete 511136ea3c5a: Download complete 73bd853d2ea5: Download complete....Status: Downloaded newer image for fedora
拉动完成后,使用该docker images
命令查看拉出的图像。以下示例显示了fedora
本地存在的所有图像:
$ docker images fedora REPOSITORY TAG IMAGE ID CREATED SIZE fedora rawhide ad57ef8d78d7 5 days ago 359.3 MB fedora 20 105182bb5e8b 5 days ago 372.7 MB fedora heisenbug 105182bb5e8b 5 days ago 372.7 MB fedora latest 105182bb5e8b 5 days ago 372.7 MB
docker pull
例如通过CTRL-c
在终端中运行时按下该进程来终止拉取操作。
$ docker pull fedora Using default tag: latest latest: Pulling from library/fedora a3ed95caeb02: Pulling fs layer 236608c7b546: Pulling fs layer^C
注意:从技术上讲,当Docker引擎守护程序和启动引发的Docker引擎客户端之间的连接丢失时,引擎会终止一次pull操作。如果与引擎守护进程的连接由于其他原因(而不是手动交互)而丢失,则拉也会中止。