раздел 01

Образ, контейнер, Dockerfile

Чтобы спокойно читать команды и то, что пишет агент, хватит четырёх понятий. Они связаны в цепочку: по рецепту собирают шаблон, из шаблона запускают рабочую копию, готовые шаблоны берут из общего хранилища.

Образ (image)
Шаблон, готовая коробка с кодом и окружением. Сам по себе не работает - это как установочный файл, лежит и ждёт запуска.
Контейнер (container)
Запущенный экземпляр образа. Из одного образа можно поднять сколько угодно контейнеров - как запустить программу из одного установочника на нескольких компьютерах.
Dockerfile
Рецепт сборки образа: какой базовый язык взять, что скопировать внутрь, что установить, какой командой запускать. Текстовый файл в проекте.
Docker Hub
Реестр готовых образов - как App Store. Оттуда тянут базовые образы (python, node, postgres) и кладут туда свои.

Простыми словами: Dockerfile - это рецепт, по которому собирается образ (шаблон), а из образа запускается контейнер (рабочая копия). А Docker Hub - место, откуда берут чужие готовые образы и куда выкладывают свои.

Короткий пример Dockerfile

Рецепт для простого приложения на Node.js выглядит так:

FROM node:20

WORKDIR /app

COPY package.json .
RUN npm install

COPY . .

CMD ["npm", "start"]

Читается сверху вниз как пошаговый рецепт:

  • FROM node:20 - берём готовый базовый образ с Node.js версии 20 (его Docker сам скачает с Docker Hub).
  • WORKDIR /app - внутри коробки работаем в папке /app.
  • COPY и RUN npm install - копируем зависимости и ставим их.
  • COPY . . - копируем остальной код проекта внутрь.
  • CMD - команда, которой контейнер запускается.

Из этого рецепта собирается образ, а из образа поднимается контейнер - детали команд в разделе про шпаргалку.