Перейти к содержимому
ToolMug

docker run в Docker Compose

Вставьте одну или несколько команд docker run и получите эквивалентный compose.yaml. Порты, тома, переменные окружения, сети, перезапуск, лимиты памяти и CPU, логирование и healthcheck преобразуются, а неподдерживаемые флаги перечисляются для ручной настройки.

Работает в браузере — введённые данные никуда не загружаются

docker run → Docker Compose
docker run
Docker Compose

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

  1. Вставьте команды docker run слева. Многострочные команды с обратным слэшем работают; разделяйте несколько команд переносами, точкой с запятой или &&.
  2. Справа появится Compose-файл. Каждая команда станет сервисом с именем из --name или из образа, если имя не задано.
  3. Проверьте жёлтую заметку о непреобразованных полях, затем скопируйте или скачайте compose.yaml и выполните docker compose up -d.

Описание параметров

Поддерживаемые флаги
-p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only и другие.
Именованные тома и сети
Именованные тома вроде pgdata:/data объявляются в верхнем разделе volumes. Пользовательские сети объявляются как external: true, то есть используется существующая сеть. Сети host и none становятся network_mode.
Порты
Сопоставления портов всегда заключаются в кавычки. YAML 1.1 может прочитать 22:22 как число в системе base-60, поэтому документация Docker рекомендует записывать порты строками.
Игнорируемые флаги
-d и --rm не имеют эквивалента в Compose и удаляются. Неподдерживаемые флаги, например --gpus, перечисляются в заметке.

Пример

docker run -d --name web --restart unless-stopped -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27

превращается в:

services:
  web:
    image: nginx:1.27
    container_name: web
    restart: unless-stopped
    mem_limit: 512m
    ports:
      - "8080:80"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./html:/usr/share/nginx/html:ro

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

Нужна ли строка version?

Нет. Современный Docker Compose v2 больше не использует верхнеуровневое поле version; если оно есть, его игнорируют с предупреждением.

Пароли в переменных окружения загружаются?

Нет. Разбор и преобразование выполняются в браузере, данные не отправляются на сервер.

Обрабатываются ли аргументы в кавычках?

Да. Одинарные и двойные кавычки и экранирование обратным слэшем следуют правилам shell, поэтому -e "MSG=hello world" сохраняет всё значение целиком.

Конфиденциальность

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

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