码头工人拉
描述
从注册表中提取图像或存储库
用法
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
扩展说明
您的大多数映像都将在Docker Hub注册表的基础映像之上创建 。
Docker Hub包含许多预构建的映像,您可以pull
尝试这些映像,而无需定义和配置自己的映像。
要下载一个特定的图像或一组图像(即存储库),请使用docker pull
。
代理配置
如果你是后面的HTTP代理服务器,例如在公司的设置,前打开一个连接到注册表,您可能需要配置多克守护进程的代理设置,使用HTTP_PROXY
,HTTPS_PROXY
和NO_PROXY
环境变量。要使用systemd
,在主机上设置这些环境变量
,请参考控件,并使用systemd配置Docker以
进行变量配置。
并发下载
默认情况下,Docker守护程序将一次提取三层图像。如果您使用的是低带宽连接,则可能会导致超时问题,并且您可能希望通过--max-concurrent-downloads
守护程序选项来降低这种情况。有关更多详细信息,请参见
守护程序文档。
有关此命令的示例用法,请参阅下面的示例部分。
选项
名称,简写 | 默认 | 描述 |
--all-tags , -a |
下载存储库中所有标记的图像 | |
--disable-content-trust |
true |
跳过图像验证 |
--platform |
API 1.32+ 设置平台(如果服务器具有多平台功能) |
|
--quiet , -q |
禁止详细输出 |
例子
从Docker Hub提取图像
要下载一个特定的图像或一组图像(即存储库),请使用
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,因为它们实际上是用不同名称标记的同一图像。因为它们是同一映像,所以它们的层仅存储一次,并且不会占用额外的磁盘空间。
有关图像,图层和内容可寻址存储的更多信息,请参阅了解图像,容器和存储驱动程序。
按摘要提取图像(不可变标识符)
到目前为止,您已经按图像的名称(和“标签”)提取了图像。使用名称和标签是处理图像的便捷方法。使用标签时,您可以docker pull
再次创建图像以确保您具有该图像的最新版本。例如,docker pull ubuntu:14.04
提取最新版本的Ubuntu 14.04映像。
在某些情况下,您不希望将图像更新到较新的版本,而是希望使用图像的固定版本。Docker使您能够按其摘要提取映像 。当按摘要提取图像时,您可以精确指定要提取的图像版本。这样,您可以将图像“固定”到该版本,并确保所使用的图像始终相同。
要了解图像的摘要,请先拉出图像。让我们ubuntu:14.04
从Docker Hub中获取最新
映像:
$ docker pull ubuntu:14.04
14.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
拉取完成后,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
LABEL 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 login管理。
https://
除非允许通过不安全的连接访问注册表,否则Docker使用该协议与注册表进行通信。有关更多信息,请参考
不安全的注册表部分。
拉出具有多个图像的存储库
默认情况下,从注册表中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 Engine守护程序与发起拉取的Docker Engine客户端之间的连接丢失时,引擎会终止拉取操作。如果与Engine守护程序的连接由于手动交互以外的其他原因而丢失,则拉取操作也会中止。
上级命令
命令 | 描述 |
---|---|
码头工人 | Docker CLI的基本命令。 |