Пошук уроків, статей та іншого контенту
Навчіться знаходити образи в реєстрах і завантажувати потрібні версії командою docker pull.
Образ Docker — це готовий набір файлів і налаштувань, потрібний для запуску контейнера. Наприклад, образ nginx містить вебсервер Nginx, а node — середовище Node.js.
Реєстр — це сховище образів. Найчастіше Docker використовує Docker Hub. Образи також можуть зберігатися у приватних реєстрах компаній.
Команда docker pull завантажує образ із реєстру на локальний комп’ютер:
docker pull IMAGE[:TAG]IMAGE — назва образу;
частина [:TAG] необов’язкова.
Найпростіша назва образу має такий вигляд:
nginxЯкщо реєстр не вказано, Docker зазвичай шукає образ у Docker Hub.
Повна назва образу може містити обліковий запис або організацію:
username/projectДля приватного або іншого реєстру назва також містить адресу реєстру:
registry.example.com/team/projectНаприклад:
docker.io/library/nginxЦе повна назва офіційного образу nginx у Docker Hub. Для офіційних образів скорочений запис nginx є зручним еквівалентом.
Щоб завантажити образ nginx, виконайте:
docker pull nginxDocker завантажить образ із тегом latest, якщо тег не вказано явно.
Під час завантаження Docker може показати кілька шарів:
Using default tag: latest
latest: Pulling from library/nginx
...
Status: Downloaded newer image for nginx:latestОбраз складається з шарів. Docker завантажує лише ті шари, яких ще немає локально. Тому повторне завантаження того самого образу зазвичай не потребує повторного завантаження всіх даних.
Перевірити локально завантажені образи можна командою:
docker image lsСкорочений варіант:
docker imagesДля вибору конкретної версії після назви образу вказують тег:
docker pull nginx:1.27Тут:
nginx — назва образу;
1.27 — тег;
nginx:1.27 — повне посилання на образ із цим тегом.
Теги часто використовують для позначення:
версій програмного забезпечення: 1.27, 20, 3.20;
варіантів середовища: alpine, slim, bookworm;
поєднання версії та варіанта: node:22-alpine.
Наприклад:
docker pull node:22-alpine
docker pull python:3.12-slim
docker pull alpine:3.20Після завантаження ці образи з’являться у списку:
docker image lsПриклад можливого результату:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.27 ... ... ...
node 22-alpine ... ... ...
alpine 3.20 ... ... ...latestЯкщо тег не вказати:
docker pull nginxDocker фактично використовує:
docker pull nginx:latestlatest не обов’язково означає найновішу версію програми. Це лише звичайна назва тегу, яку автор образу може оновлювати на власний розсуд.
Для навчальних прикладів тег latest може бути зручним. У проєктах краще вказувати конкретний тег, щоб результат не змінювався несподівано:
docker pull nginx:1.27Водночас навіть звичайний тег може бути переміщений на інший образ. Для максимально точного закріплення версії використовують дайджест.
Образ можна вказати за незмінним ідентифікатором — дайджестом:
IMAGE@sha256:...Загальний вигляд команди:
docker pull nginx@sha256:DIGESTРеальний дайджест потрібно взяти з реєстру або з виводу Docker. Він має починатися з sha256: і містити довгий набір символів.
Тег зручний для повсякденної роботи, а дайджест дає змогу точно вказати конкретну версію образу.
Для пошуку образів у Docker Hub можна використати:
docker search nginxКоманда покаже доступні результати, зокрема назви образів і короткі описи.
Приклад:
docker search redisПід час вибору образу звертайте увагу на:
точну назву образу;
автора або організацію;
наявність офіційного образу;
доступні теги;
опис і підтримувані версії.
Пошук через docker search не замінює перевірку документації образу. Перед використанням важливо з’ясувати, які теги доступні та як саме образ потрібно запускати.
Якщо образ зберігається не в Docker Hub, адресу реєстру вказують на початку назви:
docker pull registry.example.com/team/web-app:1.0У цьому прикладі:
registry.example.com — адреса реєстру;
team — простір імен або організація;
web-app — назва образу;
1.0 — тег.
Для приватного реєстру спочатку потрібно виконати вхід:
docker login registry.example.comDocker попросить облікові дані, після чого можна завантажити образ:
docker pull registry.example.com/team/web-app:1.0Без дозволу на читання приватного образу команда docker pull завершиться помилкою доступу.
docker pullЯкщо потрібний образ і відповідний тег уже є локально, Docker перевірить його стан. Наприклад:
docker pull alpine:3.20Повторний запуск може завершитися повідомленням на кшталт:
Status: Image is up to date for alpine:3.20Якщо в реєстрі тег тепер вказує на новішу версію, Docker завантажить відсутні або оновлені шари.
Нижче наведена послідовність команд для завантаження конкретної версії Alpine Linux і перевірки результату:
# Завантажуємо образ із конкретним тегом
docker pull alpine:3.20
# Перевіряємо, що образ є локально
docker image ls alpine
# Запускаємо контейнер з уже завантаженого образу
docker run --rm alpine:3.20 echo "Образ завантажено успішно"Команда docker run у цьому прикладі не завантажуватиме образ повторно, якщо він уже є локально. Параметр --rm видаляє контейнер після завершення команди.
Команда:
docker pull nginxвикористовує nginx:latest. Якщо потрібна конкретна версія, вкажіть її явно:
docker pull nginx:1.27Назва образу та тег мають бути записані точно:
docker pull nginx:1.27Помилка в назві або тегу може спричинити повідомлення про те, що образ не знайдено.
docker pull працює з образами, а не з контейнерами:
docker pull alpine:3.20Після цього образ можна використати для створення контейнера через docker run.
Якщо образ приватний, спочатку потрібно увійти до відповідного реєстру:
docker login registry.example.comПісля успішної автентифікації повторіть docker pull.
Образи можуть займати багато місця. Якщо Docker не може завантажити образ через нестачу дискового простору, звільніть місце та повторіть команду.
docker pull завантажує образ із реєстру на локальний комп’ютер.
Якщо реєстр не вказано, Docker зазвичай використовує Docker Hub.
Формат команди: docker pull IMAGE[:TAG].
Якщо тег не вказано, використовується latest.
Для передбачуваних результатів краще вказувати конкретний тег, наприклад nginx:1.27.
Локальні образи можна переглянути командою docker image ls.
Для приватних реєстрів спочатку виконайте docker login.
Один образ складається з шарів, тому Docker повторно завантажує лише ті дані, яких бракує локально.