Aller au contenu
Tout en local

docker run vers Compose

Transformez une commande docker run en service docker-compose.yml, ou l'inverse.

Entrée
Sortie

docker run vers Compose

Collez une commande docker run et cet outil la réécrit en tant que service docker-compose.yml, avec l'image, les ports, les volumes, les variables d'environnement, le réseau et la politique de redémarrage mappés à leurs équivalents compose. Basculez l'option direction et cela fonctionne aussi en arrière : collez un fichier compose et récupérez la commande docker run équivalente pour chaque service, utile quand vous n'avez qu'un fichier compose mais devez reproduire un conteneur manuellement.

Collez plusieurs commandes docker run, une par ligne, et chacune devient son propre service dans le même fichier compose — pratique pour transformer une poignée de conteneurs ad-hoc en une pile multi-services appropriée. Les switches reconnus incluent -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory et --cpus (mappés à un bloc deploy.resources.limits), plus --name, --workdir, --user, --entrypoint, --label et --hostname. Les variables d'environnement peuvent rester inline sous environment: ou être déplacées dans un fichier .env généré référencé avec env_file:, et le format du fichier compose peut être écrit avec ou sans clé version:.

Tous les flags docker run n'ont pas d'équivalent compose — des choses comme --rm ou --pull sont des switches de cycle de vie de conteneur sans configuration compose par service. L'outil ne les abandonne jamais silencieusement : les flags non pris en charge sont listés en tant que commentaires à côté du service auquel ils appartiennent, vous voyez donc exactement ce qui n'a pas été converti. Désactiver « préserver l'ordre original des flags » trie chaque liste (ports, volumes, environnement) alphabétiquement au lieu de conserver l'ordre dans lequel vous les avez tapés, ce qui peut faciliter la révision d'une diff générée.

Tout s'exécute localement dans votre navigateur — aucune commande, nom d'image ou variable d'environnement n'est jamais envoyé nulle part. Copiez le résultat, téléchargez-le en tant que fichier .txt ou renvoyez la sortie à l'entrée pour continuer à l'affiner.

FAQ

Puis-je convertir plusieurs commandes docker run à la fois ?
Oui. Collez une commande docker run par ligne (ou utilisez une barre oblique inversée à la fin pour continuer une commande sur plusieurs lignes) et chacune devient un service séparé dans le fichier compose généré.
Qu'advient-il des flags que compose ne peut pas exprimer, comme --rm ?
Ils ne sont pas silencieusement abandonnés. Chaque flag non pris en charge est listé en tant que commentaire à côté du service auquel il appartient, vous savez donc exactement ce qui n'a pas été converti.
Convertit-il également docker-compose.yml en commandes docker run ?
Oui. Basculez l'option direction vers « compose → docker run » et collez un fichier compose ; l'outil imprime une commande docker run pour chaque service.
Pourquoi mettrais-je des variables d'environnement dans un fichier .env séparé plutôt que dans le fichier compose ?
Cela garde les secrets et les valeurs par environnement en dehors du contrôle de version lorsque le fichier compose lui-même est committed. Choisissez « Fichier .env séparé » et l'outil déplace les variables là-bas et les référence avec env_file:.
Mon fichier compose ou ma commande sont-ils chargés quelque part ?
Non. La conversion s'exécute entièrement dans votre navigateur en utilisant JavaScript — rien de ce que vous collez ne part jamais nulle part.