Ответ
Развертывание приложения с помощью Docker — это процесс его "упаковки" в изолированный контейнер, который можно запустить на любой машине с установленным Docker. Процесс включает следующие основные шаги.
Шаг 1: Создание Dockerfile
Dockerfile — это текстовый файл с инструкциями по сборке Docker-образа для вашего приложения.
Пример Dockerfile для Python-приложения:
# Используем официальный базовый образ Python
FROM python:3.9-slim
# Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app
# Копируем файл зависимостей и устанавливаем их
# Этот шаг выполняется до копирования кода для эффективного кеширования
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Копируем остальной код приложения
COPY . .
# Указываем порт, который будет слушать приложение
EXPOSE 8000
# Команда для запуска приложения при старте контейнера
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "my_app.wsgi:application"]
Шаг 2: Сборка Docker-образа
Находясь в директории с Dockerfile, выполните команду сборки:
# -t (tag) задает имя и тег образа в формате <имя>:<тег>
# . указывает, что контекст сборки - текущая директория
docker build -t my-python-app:latest .
Шаг 3: Запуск контейнера
После успешной сборки образа из него можно запустить контейнер:
# -d (detach): запустить контейнер в фоновом режиме
# -p (publish): пробросить порт 8000 хоста на порт 8000 контейнера
# --name: задать имя контейнеру для удобства управления
docker run -d -p 8000:8000 --name my-running-app my-python-app:latest
Теперь ваше приложение доступно по адресу http://localhost:8000.
Основные команды для управления
docker ps: Показать запущенные контейнеры.docker logs my-running-app: Посмотреть логи контейнера.docker stop my-running-app: Остановить контейнер.docker rm my-running-app: Удалить остановленный контейнер.
Для управления сложными приложениями, состоящими из нескольких сервисов (например, веб-сервер + база данных), используется Docker Compose.