Aller au contenu

docker run vers Compose

docker run to Compose

Transforme une ligne de commande docker run en définition de service compose, et fait le chemin inverse.

Convertit une ligne de commande `docker run` en le service `compose.yaml` qui lui correspond. La commande est découpée avec les vraies règles de citation du shell : un entrypoint écrit `sh -c "…"` survit donc avec ses espaces et ses guillemets intacts.

🔒 Fonctionne entièrement dans votre navigateurdockercomposeconvertdevops

Commande docker run

compose.yaml

Remarques

  • -d n’agit que sur l’appel docker run lui-même ; Compose n’a pas d’équivalent, donc l’option a été écartée.
La commande est découpée avec les vraies règles de citation du shell, si bien qu’un entrypoint comme sh -c "…" garde ses espaces. Les options sans équivalent Compose (--rm, -d) sont écartées avec une note — c’est Compose qui décide du cycle de vie — et les options inconnues sont nommées, jamais avalées en silence. Les ports sont mis entre guillemets dans la sortie, sans quoi YAML 1.1 lirait 8080:80 comme un nombre en base 60.

Comment s’en servir

  1. Collez la commande

    Les continuations de ligne, les valeurs entre guillemets et une commande placée après l'image sont toutes prises en charge. Rien n'est exécuté — du texte entre, du texte sort.

  2. Lisez les notes sous la sortie

    Les options sans équivalent Compose sont listées plutôt qu'abandonnées en silence, et une option inconnue est nommée. Cette liste est la partie qui mérite d'être vérifiée avant de committer le fichier.

  3. Copiez-le dans votre fichier compose

    La sortie est un seul service. Mettez-le sous `services:` à côté de ce que vous avez déjà, et donnez-lui le nom que vous voulez si la commande n'avait pas de `--name`.

Questions fréquentes

Pourquoi les ports sont-ils entre guillemets ?

Parce que YAML 1.1 lit `8080:80` comme un nombre en base 60 — la syntaxe sexagésimale dont personne ne voulait et dont tous les analyseurs YAML ont hérité. Les guillemets sont ce qui en maintient une correspondance de ports. C'est le piège classique de Compose.

Que sont devenus `--rm` et `-d` ?

Abandonnés avec une note, parce que le cycle de vie appartient à Compose. `docker compose up` porte la décision attaché/détaché et `docker compose down` supprime les conteneurs : ces options n'ont donc aucun équivalent au niveau du service dans lequel les traduire.

Écrit-il un fichier compose entier ?

Il écrit le service. Les réseaux, les volumes au niveau supérieur et une clé `version:` (dont Compose moderne ne veut plus) sont à vous d'ajouter — et le plus souvent, vous n'en aurez pas besoin.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.