раздел 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- команда, которой контейнер запускается.
Из этого рецепта собирается образ, а из образа поднимается контейнер - детали команд в разделе про шпаргалку.