Outils

Convertisseur docker run vers Docker Compose

Convertissez des commandes docker run en un compose.yaml, un service par commande, avec ports, volumes, environnement et GPU.

S’exécute dans le navigateurConvertisseurs de code3,8 k
Gratuit

Entrée

0 B

Résultat

Le résultat apparaîtra ici.

Les README de projets commencent souvent par une commande docker run, mais dès que vous faites tourner plus d’un conteneur — Open WebUI à côté d’Ollama, une application à côté de sa base de données —, un compose.yaml est bien plus facile à maintenir. Collez une ou plusieurs commandes docker run et cet outil convertit chacune avec composerize, le convertisseur open source derrière composerize.com, puis combine les résultats en un seul fichier Compose : ports, volumes, variables d’environnement, politique de redémarrage, hôtes supplémentaires et réservations de GPU se retrouvent chacun sous la bonne clé de leur propre service.

Comment ça marche

  • Mettez une commande par ligne ou reliez-les avec && ; les continuations de ligne par barre oblique inverse, une invite $ en tête, sudo et podman run sont tous compris.
  • Chaque service prend le --name du conteneur ; à défaut, il prend le nom de l’image, et un nom répété reçoit un suffixe -2 pour qu’aucun conteneur n’en écrase un autre.
  • Choisissez le format de fichier Compose actuel, sans clé version, ou les anciens formats 3.x et 2.x qui commencent par version:, ainsi qu’une indentation de deux ou quatre espaces.
  • Le nom de projet fictif qu’écrit composerize est supprimé, car Compose le rejetterait ; Compose nomme alors le projet d’après le dossier qui contient le fichier.

Où vont vos données

Nulle part. Cet outil s’exécute entièrement dans votre navigateur : le texte collé est traité par la page, jamais transmis à un serveur ni consigné dans un journal.

Cet outil est gratuit et ne demande aucun compte. Ses résultats n’existent que dans la page ouverte et ne sont enregistrés nulle part.

Ce que ça coûte

Cet outil est gratuit, sans connexion ni points.

Questions fréquentes

Pourquoi mes volumes nommés sont-ils marqués external: true ?
Parce qu’un volume nommé issu de docker run — -v ollama:/root/.ollama — existe déjà et contient vos données. Marqué external, il est utilisé tel quel par Compose. Sans cela, Compose créerait un nouveau volume vide préfixé du nom du projet. Le commentaire au-dessus du fichier le signale. Si vous partez de zéro, supprimez les lignes external et Compose créera lui-même les volumes.
--gpus all est-il repris ?
Oui. Il devient une entrée deploy.resources.reservations.devices avec driver nvidia, count all et la capacité gpu, ce qui est la manière dont Compose demande des GPU ; le NVIDIA Container Toolkit doit toujours être installé sur l’hôte, exactement comme pour docker run.
Faut-il garder la ligne version: ?
Pas avec les versions actuelles de Docker. La Compose Specification qu’implémente docker compose (v2) ignore version et affiche un avertissement indiquant qu’elle est obsolète ; le format par défaut l’omet donc. Choisissez 3.x ou 2.x uniquement si le fichier doit être lu par l’ancien docker-compose 1.x ou par un outil qui attend cette clé.
Et si une option n’est pas convertie ?
composerize prend en charge la plupart des options de docker run ; les quelques-unes sans équivalent Compose sont absentes du fichier. Comparez le résultat avec la commande d’origine avant de vous y fier, surtout pour des options inhabituelles — et n’oubliez pas que le nom de l’image doit venir après toutes les options, comme l’exige docker run lui-même.

L’open source derrière

Cet outil fonctionne grâce à composerize/composerize, publié sous licence MIT. Si vous avez besoin du même comportement dans votre propre programme, c’est cette bibliothèque qu’il faut utiliser.

composerize/composerize

Aussi appelé

  • docker run vers docker compose
  • docker run to compose
  • composerize
  • convertir commande docker en compose
  • générateur docker compose
  • docker run en yaml