Transformez des commandes docker run en compose.yaml : ports, volumes, réseaux, health checks
Fonctionne dans votre navigateur. Rien de ce que vous saisissez n'est envoyé nulle part. Vérifié le 16 octobre 2026.Chaque option de docker run a une clé Compose. L'image reste image, et 5 options courantes se transposent directement : -p devient ports, -e devient environment, -v devient volumes, --restart devient restart et --name devient container_name, tandis que -it correspond à stdin_open et tty. Des options comme -d et --rm n'ont pas d'équivalent, puisque docker compose up -d exécute les services en arrière-plan.
Cette page a été traduite automatiquement à partir de l'original anglais. Aucune personne n’a encore relu la traduction : c’est la version anglaise qui fait foi. Lire l'original en anglais
Collez une ou plusieurs commandes docker run, retours à la ligne avec barre oblique inverse compris, ou cliquez sur Essayer un exemple.
Lisez le compose.yaml à droite : un service par commande, avec les volumes et les réseaux déclarés en bas.
Consultez les notes sur les options sans équivalent Compose, comme --rm.
Cliquez sur Télécharger pour enregistrer compose.yaml, puis exécutez docker compose up -d dans le même dossier.
Une commande docker run qui fonctionne est le meilleur point de départ pour un fichier Compose, mais réécrire 10 options à la main expose aux erreurs. Collez la commande, ou plusieurs, et obtenez un compose.yaml avec un service pour chacune, conforme à la Compose Specification, afin qu'il fonctionne avec docker compose up -d.
| docker run | compose.yaml |
|---|---|
--name web |
container_name: web |
-p 8080:80 |
ports: ["8080:80"] |
-e KEY=value |
environment: ["KEY=value"] |
-v data:/data |
volumes: plus un data: de premier niveau |
--network shop-net |
networks: plus shop-net: external: true |
--restart unless-stopped |
restart: unless-stopped |
-it |
stdin_open: true, tty: true |
--gpus all |
deploy.resources.reservations.devices |
Ce qui est compris. Plus de 70 options de docker run, dans toutes les écritures acceptées par la Docker CLI : --flag value, --flag=value, -p80:80 et options courtes groupées comme -it ou -dp 3000:3000. Les commandes coupées sur plusieurs lignes avec \ (bash), ^ (cmd) ou ` (PowerShell) sont réunies, les guillemets sont lus comme un shell les lit, et $(pwd) dans un volume devient ./, car Compose résout les chemins depuis le dossier du fichier Compose.
Plusieurs commandes à la fois. Collez un script d'installation entier : chaque docker run devient un service, les autres commandes comme docker network create sont ignorées, et les services qui partagent une image reçoivent des noms distincts.
Rien de caché. Les options sans équivalent Compose, comme --rm et -d, ainsi que toute option inconnue de l'outil, sont listées sous le résultat au lieu de disparaître. Les ports et les valeurs d'environnement sont entre guillemets, pour qu'aucun lecteur YAML ne prenne 22:22 pour un nombre. Le fichier n'a pas de clé version:, que la Compose Specification a rendue obsolète.
Tout s'exécute dans votre navigateur ; les commandes que vous collez, qui contiennent souvent des mots de passe, ne sont jamais envoyées nulle part.
Attribuez à chaque option sa clé Compose dans un service : l'image en image, -p en ports, -e en environment, -v en volumes, --name en container_name et --restart en restart. Les volumes nommés et les réseaux personnalisés reçoivent aussi une entrée de premier niveau. En collant la commande ici, vous obtenez le compose.yaml complet, prêt pour docker compose up -d.
L'option -i devient stdin_open: true et -t devient tty: true, donc -it active les deux. L'option -d n'a pas de clé, car docker compose up -d démarre chaque service en arrière-plan. Pour vous attacher plus tard à un service en cours d'exécution, utilisez docker compose attach ou docker compose exec avec le nom du service.
Rien dans le fichier : les services Compose sont faits pour durer, il n'existe donc aucune clé qui supprime le conteneur à son arrêt. Pour une tâche ponctuelle, exécutez docker compose run --rm avec le nom du service, ce qui supprime ce conteneur ensuite. La note sous le résultat indique quand --rm a été omis.
Un docker run avec --network shop-net utilise un réseau qui existe déjà. Le marquer external indique à Compose de rejoindre ce réseau plutôt que d'en créer un, afin que les conteneurs démarrés des deux façons puissent toujours communiquer. Pour que Compose crée et gère lui-même le réseau, supprimez la ligne external: true.
Oui, écrivez les ports sous forme de chaînes, comme "8080:80". Certains lecteurs YAML traitent deux nombres reliés par deux-points comme un nombre en base 60 : 22:22 pourrait devenir 1342 et casser un mappage SSH. Cet outil met entre guillemets chaque port, chaque entrée d'environnement et chaque chaîne de volume pour que le fichier ait le même sens partout.
Non. La Compose Specification a rendu la clé version: obsolète, et les versions récentes de docker compose affichent un avertissement quand elle est présente. Les fichiers générés ici commencent directement par services:, suivi de volumes: et networks: quand les commandes utilisent des volumes nommés ou des réseaux personnalisés.
Les taux et les règles changent ; vérifiez la source avant de vous fier à un chiffre.
Toujours bloqué ? Poser une question sur Convertir docker run en docker compose et toute personne qui connaît la réponse peut répondre. Aucun compte nécessaire.