Ключевые понятия: образ, контейнер, реестр

Три слова, без которых не понять Docker: образ, контейнер и реестр.

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

Образ (image)

Образ — это неизменяемый шаблон: упакованная файловая система с приложением, библиотеками и метаданными о том, как его запускать. Образ похож на установочный диск или класс в программировании: сам по себе он не «работает», он лишь описывает, что будет внутри. У образа есть имя и тег версии, например nginx:1.27 или postgres:16.

Контейнер (container)

Контейнер — это запущенный экземпляр образа. Если образ — это класс, то контейнер — объект этого класса. Из одного образа можно запустить сколько угодно контейнеров, и каждый будет работать независимо. У контейнера поверх неизменяемого образа добавляется тонкий записываемый слой, куда пишутся изменения во время работы.

# Из одного образа nginx — три независимых контейнера
docker run -d --name web1 nginx
docker run -d --name web2 nginx
docker run -d --name web3 nginx

Реестр (registry)

Реестр — это хранилище образов, откуда их скачивают и куда выкладывают. Главный публичный реестр — Docker Hub: там лежат официальные образы nginx, postgres, python, node и тысячи других. Команда docker pull скачивает образ из реестра, docker push — отправляет туда ваш собственный.

Как всё связано

Цепочка простая: вы скачиваете образ из реестра (или собираете свой), затем запускаете из него контейнер. Образ — статичный артефакт, контейнер — живой процесс.

ПонятиеАналогияСостояние
Образкласс / чертёжтолько чтение, статичный
Контейнеробъект / готовое изделиезапущенный процесс
Реестрсклад / магазин приложенийхранилище образов

Итог

  • Образ — неизменяемый шаблон приложения; из него запускают контейнеры.
  • Контейнер — работающий экземпляр образа; их может быть много из одного образа.
  • Реестр (Docker Hub) — хранилище образов: pull скачивает, push выкладывает.
Проверьте себя
1. Чем образ отличается от контейнера?
AЭто синонимы, разницы нет
BОбраз — неизменяемый шаблон, контейнер — запущенный экземпляр образа
CОбраз работает, а контейнер только хранится на диске
DКонтейнер больше образа по размеру всегда
2. Что такое Docker Hub?
AПрограмма для редактирования кода
BПубличный реестр, откуда скачивают и куда выкладывают образы
CЛокальная папка с контейнерами
DКоманда для остановки контейнера
3. Сколько контейнеров можно запустить из одного образа?
AТолько один
BСколько угодно, каждый работает независимо
CРовно столько, сколько ядер у процессора
DНе больше двух
Поддержать проект