Dockerfile и docker compose
Dockerfile и Docker Compose — это два разных, но взаимосвязанных инструмента Docker, используемых для создания и управления контейнерами.
1. Dockerfile
Назначение: описывает как собрать образ контейнера.
Что содержит: инструкции по установке зависимостей, копированию кода, настройке среды и запуску приложения.
Пример:
FROM python:3.11
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
Результат: образ
myapp:latest
, который можно запускать контейнером черезdocker run
.
2. Docker Compose
Назначение: описывает как запускать несколько контейнеров и их связи в виде сервиса.
Что содержит:
Сервисы (контейнеры) и их образы или инструкции сборки,
проброс портов, маунты директорий, переменные окружения, зависимости между сервисами.
Пример:
version: "3.9"
services:
app:
build: .
ports:
- "8000:8000"
volumes:
- ./app:/app
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
ports:
- "5432:5432"
Результат: запуск нескольких контейнеров командой
docker-compose up --build
.
Ключевое различие
Цель
Создание образа
Запуск и управление контейнерами
Содержит
Инструкции сборки образа
Конфигурацию сервисов и связей
Результат
Образ контейнера
Запущенные контейнеры и сеть между ними
Команда запуска
docker build
→ docker run
docker-compose up
Итог: Dockerfile создаёт образ, а Docker Compose управляет запуском одного или нескольких контейнеров, их сетями и томами.
Last updated
Was this helpful?