Генератор Docker Compose
Писать docker-compose.yml вручную значит помнить точные отступы, ставить кавычки вокруг каждого сопоставления портов и знать, какую строку версии понимает ваш бинарник Compose. Этот генератор позволяет определить службы с помощью простых полей: имени, образа, сопоставлений портов хост:контейнер и томов. На выходе получается корректный YAML-файл по современной спецификации Compose (без ключа версии) с разумными значениями по умолчанию.
Как собрать файл Compose
-
1
Добавьте службы
Укажите для каждой службы имя, образ, сопоставления портов хост:контейнер и тома. Две стартовые службы уже заполнены.
-
2
Измените или удалите строки
Правьте любое поле напрямую, добавляйте службу кнопкой + Service или удаляйте ненужную строку.
-
3
Проверьте сгенерированный YAML
Предпросмотр обновляется во время ввода: сопоставления портов берутся в кавычки, а ключ версии опускается, как требует современная спецификация Compose.
-
4
Скопируйте файл
Скопируйте сгенерированный docker-compose.yml и вставьте его в корень проекта.
Современная спецификация Compose
Compose V2 (плагин, поставляемый с Docker Desktop и современными Docker Engine) следует Compose Specification. Ключ version: устарел; генератор его опускает. Ключи верхнего уровня: services, networks, volumes, configs и secrets.
Анатомия службы
Служба, близкая к продакшену, выглядит так:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
Тома: bind mount или именованный том
- Bind mount (
./app:/var/www) привязывает контейнер к пути на хосте; отлично подходит для локальной разработки, потому что изменения видны сразу. - Именованный том (
pgdata:/var/lib/postgresql/data) управляется Docker и хранится независимо от путей на хосте; правильный выбор для баз данных и всего, что вы не хотите случайно удалить с помощьюrm -rf. - Анонимный том - избегайте. Он переживает перезапуски, но исчезает без предупреждения при
docker compose down -v.
Сети
По умолчанию Compose создаёт сеть с именем проекта и подключает к ней каждую службу. Явные сети полезно объявлять, когда:
- нужно изолировать базу данных от службы, открытой наружу;
- нужен мост со своей подсетью, чтобы согласовать его с существующей инфраструктурой;
- нужно подключить контейнеры к уже существующей внешней сети (
external: true).
Частые ошибки, которых стоит избегать
- Конфликты ключа версии.
version: "3.8"в начале мешает новым функциям, таким какstart_intervalв healthcheck, работать в старом Compose; генератор опускает ключ версии. - Кавычки вокруг портов.
8080:80в некоторых крайних случаях интерпретируется как YAML-число в шестидесятеричной системе (base-60); генератор всегда берёт сопоставления портов в кавычки. - Секреты прямо в коде. Секреты, записанные прямо в compose.yml, попадают в git. Храните их в
env_fileили в хранилище секретов платформы. - depends_on без условия. Простой
depends_on: [db]ждёт запуска контейнера, а не готовности службы. Используйтеcondition: service_healthyи добавьте healthcheck зависимой службе.
Часто задаваемые вопросы
На текущую Compose Specification (в соответствии с Docker Compose V2). Файл опускает ключ version: - так пишут современные файлы Compose. Он работает с Docker Compose V2.22 и новее.
В этой версии через форму нельзя. Генератор сосредоточен на определениях служб с образом, портами и томами. Сети, переменные среды, healthcheck и другие ключи можно добавить в сгенерированный YAML вручную перед использованием.
Нет, этот инструмент занимается compose.yml. Для Dockerfile используйте Генератор Dockerfile: он выбирает базовый образ и порядок инструкций COPY/RUN для пяти технологий.
Нет. Определения служб используются только для построения YAML на этой странице. Они не сохраняются, не загружаются и не передаются.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Генератор цветовой палитры
Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.
Инструмент доступен на других языках
- Generator Docker Compose [PL]
- Générateur Docker Compose [FR]
- Docker Compose-generator [SV]
- Gerador de Docker Compose [PT]
- Docker Compose Oluşturucu [TR]
- مولّد Docker Compose [AR]
- Docker Compose 생성기 [KO]
- Docker Composeジェネレーター [JA]
- Docker Compose-generator [NL]
- ตัวสร้าง Docker Compose [TH]
- Docker Compose Generator [EN]
- Docker Compose 生成器 [ZH]
- Generador de Docker Compose [ES]
- Generator Docker Compose [ID]
- Trình tạo Docker Compose [VI]
- Docker-Compose-Generator [DE]
- Generatore di Docker Compose [IT]