Введение
Docker — стандарт де-факто для контейнеризации приложений. По данным отчёта Datadog за 2025 год, более 60% организаций используют Docker в production-среде, а среднее число контейнеров на хост выросло до 15. Однако даже опытные разработчики тратят часы на отладку Dockerfile и Compose-файлов. Я собрал 10 проверенных промтов, которые использую ежедневно для ускорения работы с контейнерами. Каждый промт — это готовый шаблон для AI, который экономит время и уменьшает количество ошибок.
1. Генерация Dockerfile для Node.js приложения
Этот промт создаёт production-готовый Dockerfile с multi-stage сборкой.
Промт:
Сгенерируй Dockerfile для Node.js 20 приложения на Express с multi-stage сборкой. Первый этап — установка зависимостей и сборка, второй — минимальный образ на базе node:20-alpine. Используй .dockerignore для node_modules. Добавь HEALTHCHECK через curl.
Пример использования:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --only=production
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:3000/health || exit 1
CMD ["node", "server.js"]
2. Оптимизация размера образа
Используй этот промт, когда образ раздулся до гигабайтов.
Промт:
Проанализируй этот Dockerfile и предложи 3 способа уменьшить размер образа. Укажи, какие слои можно объединить, какие зависимости перенести в multi-stage. Пример: замена
apt-get installнаapt-get install --no-install-recommends.
Результат:
Следуя рекомендациям, можно сократить размер образа на 40–60%. Например, для Python-приложения с pandas замена базового образа с python:3.11-slim на python:3.11-alpine уменьшает размер с 800 МБ до 250 МБ.
3. Docker Compose для разработки и продакшена
Промт для генерации Compose-файла с разделением на dev и prod.
Промт:
Создай docker-compose.yml для приложения на Python FastAPI с PostgreSQL и Redis. Добавь два профиля: dev (с монтированием volumes и hot-reload) и prod (с ограничением ресурсов и healthcheck). Используй .env для переменных.
Пример:
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
env_file: .env
profiles:
- dev
volumes:
- .:/app
command: uvicorn main:app --reload
db:
image: postgres:15
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
4. Отладка контейнера в реальном времени
Когда контейнер падает при старте, этот промт помогает найти причину.
Промт:
Контейнер на основе образа nginx:alpine падает с exit code 139. Напиши команды для инспекции: как зайти в контейнер с shell, проверить логи, изменить CMD для отладки. Добавь пример docker run с --entrypoint.
Решение:
docker run -it --rm --entrypoint /bin/sh nginx:alpine -c "nginx -t && nginx -g 'daemon off;'"
5. Multi-stage сборка для Go-приложения
Промт для создания минимального образа Go-бинарника.
Промт:
Напиши Dockerfile для Go 1.22 приложения с CGO_ENABLED=0. Первый этап — сборка с golang:1.22-alpine, второй — scratch с копированием бинарника и CA-сертификатов. Добавь аргументы для версии и порта.
6. Работа с секретами в Docker
Как не хранить пароли в образе.
Промт:
Покажи, как использовать Docker secrets в Compose-файле для передачи пароля к PostgreSQL. Используй secrets вместо переменных окружения. Добавь пример файла secrets.txt и команду для создания секрета.
7. Лимиты ресурсов и мониторинг
Промт для настройки ограничений CPU и памяти.
Промт:
Настрой docker-compose.yml для сервиса на Java 17 с ограничением памяти 512 МБ и CPU 0.5. Добавь мониторинг через docker stats и настрой restart policy для высокой доступности.
Пример:
services:
app:
image: openjdk:17-slim
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
restart: unless-stopped
8. Тестирование Dockerfile с помощью hadolint
Промт для проверки Dockerfile на best practices.
Промт:
Проанализируй этот Dockerfile с помощью hadolint. Выведи все ошибки и рекомендации по каждому правилу. Используй образ hadolint/hadolint:latest-debian.
Команда:
docker run --rm -i hadolint/hadolint < Dockerfile
9. Сборка образов для разных архитектур
Промт для создания multi-arch образов (AMD64 + ARM64).
Промт:
Настрой Docker Buildx для сборки multi-arch образа для платформ linux/amd64 и linux/arm64. Используй builder instance с драйвером docker-container. Добавь команду для push в registry.
10. Миграция с Docker на Podman
Промт для тех, кто хочет перейти на daemonless контейнеры.
Промт:
Сравни Docker и Podman для production-среды. Напиши, как запустить docker-compose.yml с помощью podman-compose без изменения файлов. Укажи отличия в командах (docker vs podman) и преимущества Podman (отсутствие демона, rootless).
Заключение
Эти 10 промтов покрывают 80% задач, с которыми я сталкиваюсь в работе с Docker. Используйте их как шпаргалку: скопируйте промт, вставьте в AI-инструмент (ChatGPT, Claude или локальную модель), адаптируйте под свой проект. Главное — не копируйте слепо: проверяйте версии пакетов, обновляйте базовые образы и тестируйте сборки. Dockerfile не должен быть чёрным ящиком — понимайте каждый слой. Начните с промта №1 — он даст production-готовый шаблон за 30 секунд. А если хотите глубже разобраться, изучите официальную документацию Docker и рекомендации от Snyk по безопасности образов.
Комментарии