Ключевые понятия: образ, контейнер, реестр
Три слова, без которых не понять 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выкладывает.