docker pull

Извлечь образ или репозиторий из реестра

Использование

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Обратитесь к разделу параметров для обзора доступных OPTIONS для этой команды.

Описание

Большинство ваших образов будут созданы поверх базового образа из реестра Docker Hub.

Docker Hub содержит множество готовых образов, которые вы можете pull пытается без необходимости определять и настраивать свои собственные.

Чтобы загружает определённое образ или множество образов (например, репозиторий), используйте docker pull .

Конфигурация прокси

Если вы находитесь за прокси-сервером HTTP, например, в корпоративных настройках, прежде чем открывать соединение с реестром, вам может потребоваться настроить параметры прокси-сервера Docker, используя переменные среды HTTP_PROXY, HTTPS_PROXY и NO_PROXY. Чтобы установить данные переменные среды на хосте с помощью systemd, обратитесь к контролировать и настраивать Docker с помощью systemd для настройки переменных.

Параллельные загрузки

По умолчанию демон Docker извлекает три слоя образа за раз. Если вы используете соединение с низкой пропускной способностью, это может вызвать проблемы с тайм-аутом, и вы можете уменьшить его с помощью параметра демона --max-concurrent-downloads. См. документация демона для получения более подробной информации.

Примеры использования этой команды см. в разделе примеров далее.

Параметры

Имя, сокращенно

По умолчанию

Описание

--all-tags, -a

Скачать все образы с тегами в репозитории

--disable-content-trust

true

Пропустить проверку образа

--platform

Устанавливает платформу, если сервер поддерживает несколько платформ

--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 образы:

$ 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 использует хранилище образов с адресацией по содержимому, а идентификатор образа представляет собой дайджест SHA256, охватывающий конфигурацию и слои образа. В приведённом выше примере debian:jessie и debian:latest имеют одинаковый идентификатор образа, потому что на самом деле это один и тот же образ, помеченный разными именами. Поскольку это одно и то же образ, их слои сохраняются только один раз и не занимают дополнительное место на диске.

Дополнительные сведения об образах, слоях и хранилище с адресацией содержимого см. в разбираться в образах, контейнерах и драйверах хранилища.

Вытяните образ по дайджесту (неизменяемый идентификатор)

До сих пор вы вытягивали образа по их имени (и «тегу»). Использование имён и тегов — удобный способ работы с образами. При использовании тегов вы можете снова docker pull образ, чтобы убедиться, что у вас самая последняя версия этого образа. Например, docker pull ubuntu:20.04 извлекает последнюю версию образа Ubuntu 20.04.

В некоторых случаях вы не хотите, чтобы образа обновлялись до более новых версий, а предпочитаете использовать фиксированную версию образа. Docker позволяет вам получает образ по его дайджесту . При извлечении образа по дайджесту вы указываете точно, какую версию образа извлекать. Это позволяет вам «прикрепить» образ к этой версии и гарантировать, что используемое вами образ всегда будет одним и тем же.

Чтобы узнать дайджест образа, сначала извлечь образ. Давайте возьмем последний образ ubuntu:20.04 из Docker Hub:

$ docker pull ubuntu:20.04

20.04: Pulling from library/ubuntu
16ec32c2132b: Pull complete
Digest: sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Docker распечатывает дайджест образа после завершения извлечения. В приведённом выше примере дайджест образа:

sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3

Docker также печатает дайджест образа при отправке в реестр. Это может быть полезно, если вы хотите закрепить версию образа, которое вы только что отправили.

Дайджест заменяет тег при извлечении образа, например, чтобы получает вышеуказанное образ по дайджесту, выполняет следующую команду:

$ docker pull ubuntu@sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3

docker.io/library/ubuntu@sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3: Pulling from library/ubuntu
Digest: sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3
Status: Image is up to date for ubuntu@sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3
docker.io/library/ubuntu@sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3

Дайджест также можно использовать, например, в FROM Dockerfile:

FROM ubuntu@sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3
LABEL org.opencontainers.image.authors="some maintainer <[email protected]>"

Примечание

Использование этой функции «прикрепляет» образ к определенной версии во времени. Поэтому 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

Примечание

Engine завершает операцию извлечения, когда соединение между демоном Docker Engine и клиентом Docker Engine, инициировавшим извлечение, теряется. Если связь с демоном Engine потеряна по другим причинам, кроме ручного взаимодействия, извлечение также прерывается.