Для разработчиков / Docker

Конвертер docker run в Docker Compose

Преобразуйте команды docker run в файл compose.yaml с портами, томами, переменными окружения, сетями, политикой перезапуска, проверками состояния, GPU и другими параметрами — или преобразуйте сервис Compose обратно в docker run. Опции без эквивалента будут перечислены отдельно.

Конвертер docker run в Docker Compose: Команда разбирается так же, как оболочкой: с учётом кавычек и экранирования. Затем каждая опция сопоставляется с ключом Compose: -p — с ports, -v и --mount — с volumes, -e — с environment, --restart, --network, --health-cmd — с healthcheck, --gpus — с резервированием устройства и ещё примерно сорока параметрами. Именованные тома и сети получают верхнеуровневые записи. Несколько команд преобразуются в несколько сервисов в одном файле. Опции без эквивалента в Compose перечисляются отдельно, а не удаляются без предупреждения. Работает на 100% локально в вашем браузере, файлы на сервер не загружаются.

Запуски
В вашем браузере
Стоимость
Бесплатно · без регистрации
Доступность
Готово к использованию
Преобразование docker run в ComposeЛокальная обработка

Полностью работает в браузере

compose.yaml

services:
  db:
    image: postgres:16
    container_name: db
    environment:
      - POSTGRES_PASSWORD=change-me
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - 5432:5432
    restart: unless-stopped
volumes:
  pgdata:

После преобразования

Выполните docker compose config, чтобы проверить файл и увидеть его со всеми подставленными значениями по умолчанию, затем запустите docker compose up -d. Фиксируйте версии образов, например postgres:16 вместо latest, чтобы перезапуск неожиданно не обновил базу данных.

Чтобы прочитать файл в другом формате, преобразуйте его с помощью YAML в JSON; для запланированных задач в контейнерах пригодится объяснение cron, где разбираются выражения cron.

Тома и данные

Именованный том, например pgdata, управляется Docker и сохраняется после выполнения docker compose down; путь вроде ./data указывает на папку на хосте. Создавайте резервные копии именованных томов перед удалением командой docker compose down -v — она удаляет эти тома.

Как пользоваться

  1. Вставьте одну или несколько команд docker run; переносы строк с обратной косой чертой поддерживаются.
  2. Просмотрите compose.yaml и все параметры, которые не удалось преобразовать.
  3. Скопируйте или скачайте результат либо смените направление, чтобы преобразовать файл Compose в команды docker run.

Конфиденциальность и ограничения

Всё выполняется в вашем браузере; ваши команды, которые могут содержать пароли, никуда не загружаются.

Похожие инструменты

Часто задаваемые вопросы

Зачем использовать Compose вместо docker run?

Файл Compose хранит всю конфигурацию в одном месте: её можно читать, версионировать и запускать с помощью docker compose up, вместо того чтобы хранить длинные команды в истории оболочки. Кроме того, он запускает несколько контейнеров вместе с их сетями и томами.

Что происходит с --rm и -d?

У Compose нет параметра --rm: контейнеры удаляются с помощью docker compose down. Параметр -d выбирается при запуске docker compose up -d, поэтому в файл он не добавляется.

Почему сети помечаются как external?

docker run --network использует уже существующую сеть, поэтому преобразованный файл обращается к ней таким же образом. Удалите external: true, если хотите, чтобы Compose создал сеть самостоятельно.

Стоит ли хранить пароли в файле?

Для паролей и ключей лучше использовать env_file, исключённый из системы контроля версий, или секреты Docker. Конвертер сохраняет данные из команды, поэтому перед фиксацией файла проверьте раздел environment.

Бесплатный инструмент · запусков: в вашем браузере · аккаунт не нужен