Перейти до вмісту

docker run у Compose

Перетворіть команду docker run у сервіс docker-compose.yml або навпаки.

Введення
Вихід

docker run у Compose

Вставте команду docker run, і цей інструмент переписує її як сервіс docker-compose.yml, з образом, портами, томами, змінними середовища, мережею та політикою перезавантаження, відображеними на еквіваленти compose. Переключіть опцію напрямку і вона працює навпаки: вставте файл compose і отримайте еквівалентну команду docker run для кожного сервісу, корисно коли у вас є лише файл compose, але потрібно відтворити один контейнер вручну.

Вставте кілька команд docker run, по одній у рядку, і кожна стане окремим сервісом у одному файлі compose — зручно для перетворення кількох ad-hoc контейнерів у надлежний багатосервісний стек. Розпізнані перемикачі -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory та --cpus (відображаються на блок deploy.resources.limits), а також --name, --workdir, --user, --entrypoint, --label та --hostname. Змінні середовища можуть залишатися вбудовані в environment: або переміщені у згенерований файл .env, на який посилається env_file:, а формат файлу compose може бути написаний з ключем version: або без нього.

Не кожний прапорець docker run має еквівалент compose — такі речі як --rm або --pull — це перемикачі життєвого циклу контейнера, які не мають параметра compose для кожного сервісу. Інструмент ніколи їх не опускає мовчки: непідтримувані прапорці перелічуються як коментарі поряд з сервісом, якому вони належать, тому ви бачите ровесно те, що не було перетворено. Вимкнення опції «зберегти порядок прапорців» сортує кожний список (порти, томи, середовище) за абеткою замість збереження порядку, в якому ви їх вводили, що може полегшити перегляд згенерованого diff.

Усе запускається локально у вашому браузері — жодна команда, назва образу або змінна середовища ніколи нікуди не відправляються. Скопіюйте результат, завантажте як .txt файл або відправте результат назад на вхід для подальшого поліпшення.

FAQ

Чи можу я перетворити кілька команд docker run одночасно?
Так. Вставте одну команду docker run у рядок (або використовуйте зворотну косу риску для продовження команди на кілька рядків) і кожна стане окремим сервісом у згенерованому файлі compose.
Що відбувається з прапорцями, які compose не може висловити, такими як --rm?
Вони не опускаються мовчки. Кожний непідтримуваний прапорець перелічується як коментар поряд з сервісом, якому він належить, тому ви знаєте точно, що не було перетворено.
Чи він також може перетворити docker-compose.yml назад у команди docker run?
Так. Переключіть опцію напрямку на «compose → docker run» і вставте файл compose; інструмент виведе одну команду docker run для кожного сервісу.
Чому я повинен помістити змінні середовища у окремий файл .env замість файлу compose?
Це тримає секрети та значення для кожного середовища вне системи контролю версій, коли сам файл compose комітиться. Виберіть «окремий файл .env» і інструмент переместить змінні туди та посилатиметься на них через env_file:.
Моя команда або файл compose завантажується кудись?
Ні. Перетворення працює повністю у вашому браузері, використовуючи JavaScript — ніщо, що ви вставляєте, ніколи не покидає ваш пристрій.