Aller au contenu

Docker Run vers Compose · Docker

Convertir docker run en docker compose — et inversement.

Pour convertir docker run en docker compose, collez votre commande et obtenez le service docker-compose.yml équivalent ; ou collez un service Compose pour reconstruire la ligne docker run. Instantané, dans votre navigateur. Sans installation, sans inscription.

S’exécute dans votre navigateur — rien de ce que vous collez ne quitte cette page. Comment nous le prouvons

S’exécute dans votre navigateur Sans inscription Bidirectionnel Mis à jour le 29 juil. 2026

Convertir docker run en docker compose — espace d’essai en ligne

docker run input

Runs entirely in your browser — nothing is uploaded.

Tip: press Esc to release keyboard focus from the editor.

Output

Pick a mode, load an example or paste your own, then convert to see the result here.

La faille

Un conteneur, deux formes.

Une commande docker run est idéale pour un démarrage rapide, mais dès l’instant où vous la voulez reproductible — versionnée, relue dans une PR, démarrée d’une seule commande — il vous faut un docker-compose.yml. Traduire un mur d’indicateurs -p, -v et -e à la main est fastidieux et source d’erreurs : il est facile d’oublier un indicateur, de mal imbriquer une liste ou de mal mettre un port entre guillemets.

Ce convertisseur fait la partie mécanique à votre place, dans les deux sens. Pour transformer un docker run en docker compose, il tokenise la commande exactement comme le ferait un shell — en respectant les guillemets, les indicateurs courts groupés et les continuations de ligne — mappe chaque indicateur sur la clé Compose correspondante, et produit un YAML déterministe. Pour convertir un docker compose en docker run, il reconstruit une commande exécutable à partir d’un service et vous informe des clés (depends_on, build, deploy) qui n’ont tout simplement aucun équivalent en commande.

Tout s’exécute dans votre navigateur, vous pouvez donc convertir des commandes nommant des registres privés ou des variables d’environnement porteuses de secrets sans que rien ne quitte l’onglet. Consultez la référence docker run et la référence des services Compose.

Voir la correspondance complète indicateur-vers-clé, ou essayez l’espace d’essai en direct ci-dessus.

Le pipeline

Comment ça marche.

Cinq étapes déterministes s’exécutent de bout en bout à chaque conversion — entièrement dans votre onglet de navigateur, à chaque fois.

  1. Tokeniser la commande.

    Un tokeniseur conforme à POSIX découpe la ligne, en respectant les guillemets simples et doubles et les continuations antislash-saut de ligne, de sorte que les valeurs entre guillemets et les collages multi-lignes restent intacts.

  2. Retirer le préfixe.

    Un docker run ou docker container run de tête est supprimé, et les indicateurs courts groupés comme -it ou -itp sont développés en leurs indicateurs individuels.

  3. Classer chaque indicateur.

    Chaque indicateur est mappé sur un objet de service — ports, volumes, environnement, réseaux, capacités, limites, étiquettes et healthcheck — et le premier argument positionnel devient l’image, le reste la commande.

  4. Produire un YAML déterministe.

    Un petit générateur écrit à la main imprime un bloc services: stable et compatible avec les diffs, indexé par le nom du conteneur (ou app), n’entourant de guillemets que les scalaires que YAML l’exige.

  5. Ou inverser.

    En mode compose → run, le même modèle est reconstruit à partir du YAML Compose analysé en une commande docker run, les clés propres à Compose étant remontées comme des avertissements.

Référence

Chaque indicateur, mappé.

Les indicateurs docker run que le convertisseur reconnaît et les clés docker-compose auxquelles ils correspondent. Tout ce qui n’est pas reconnu est signalé comme une note au lieu d’être silencieusement abandonné.

Indicateur docker run Clé Compose
-p / --publish ports Entre guillemets, p. ex. "8080:80".
-v / --volume, --mount volumes Forme courte source:cible[:ro].
-e / --env environment Une liste KEY=value.
--env-file env_file Un ou plusieurs fichiers.
--name container_name Également la clé du service.
--restart restart no / always / unless-stopped …
--network / --net networks host / none → network_mode.
-w / --workdir working_dir
-u / --user user
--entrypoint entrypoint
--hostname hostname
--add-host extra_hosts
--cap-add / --cap-drop cap_add / cap_drop
--privileged privileged
-m / --memory mem_limit
--cpus cpus
-l / --label labels
--health-* healthcheck cmd / interval / timeout / retries.
-i / -t stdin_open / tty
--rm, -d / --detach — (avertissement) Aucun équivalent Compose.

Entrée

docker run
docker run -d -p 8080:80 --name web \
  -v /data:/usr/share/nginx/html:ro \
  --restart unless-stopped nginx:alpine

Sortie

docker-compose.yml
services:
  web:
    image: nginx:alpine
    container_name: web
    ports:
      - "8080:80"
    volumes:
      - /data:/usr/share/nginx/html:ro
    restart: unless-stopped

Après la conversion, démarrez le service avec docker compose up -d — l’équivalent Compose de l’indicateur -d d’origine.

Étape suivante

Le service est prêt ? Validez le pipeline et dimensionnez les pods.

Un service Compose ne voyage que rarement seul. Vérifiez la CI qui compile et pousse l’image avec le GitLab CI Validator, et lorsque vous déplacez le conteneur vers Kubernetes, transformez ses limites de mémoire et de CPU en requests/limits sûrs avec le Kubernetes Resource Calculator — le tout entièrement dans votre navigateur.

next.sh
# build, push, deploy
docker build -t app .
docker compose up -d        # ← from this converter
kubectl apply -f deploy.yml # ← size it first

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

Pour convertir docker run en docker compose, collez la commande docker run complète dans le convertisseur avec le mode réglé sur run → compose, puis appuyez sur Convertir. Il supprime le docker run de tête, classe chaque indicateur sur un objet de service, traite le premier token non-indicateur comme l’image et le reste comme la commande, et imprime un bloc services: prêt à l’emploi que vous déposez dans un docker-compose.yml — aucune installation, aucun démon Docker, et rien n’est poussé nulle part.

Oui. Ce convertisseur docker run en compose en ligne fonctionne dans les deux sens : basculez le sélecteur de mode sur compose → run, collez une définition de service (ou un fichier Compose complet — le premier service est utilisé), et il reconstruit une commande docker run équivalente, y compris les ports, volumes, variables d’environnement, réseaux, capacités, limites de ressources et un healthcheck. Les clés qui n’ont aucun équivalent docker run — depends_on, build, deploy, profiles — sont signalées comme des avertissements plutôt que traduites.

Les plus courants : -p/--publish → ports, -v/--volume et --mount → volumes, -e/--env → environment, --env-file → env_file, --name → container_name, --restart → restart, --network/--net → networks (ou network_mode pour host/none), -w/--workdir → working_dir, -u/--user → user, --entrypoint → entrypoint, --hostname → hostname, --add-host → extra_hosts, --cap-add/--cap-drop → cap_add/cap_drop, --privileged → privileged, -m/--memory → mem_limit, --cpus → cpus, -l/--label → labels, et les indicateurs --health-* → un bloc healthcheck. -i et -t correspondent à stdin_open et tty.

Chaque indicateur -p/--publish devient une entrée de la liste ports: du service. Le convertisseur conserve la forme hôte:conteneur (par exemple -p 8080:80 → "8080:80"), met le mappage entre guillemets car YAML interprète sinon 8080:80 comme une heure, et préserve toute adresse de liaison ou suffixe de protocole comme 127.0.0.1:8080:80/tcp. Plusieurs indicateurs -p produisent plusieurs entrées de port.

Chaque -v/--volume (et --mount) devient une entrée de la liste volumes:. La forme courte source:cible[:ro] est conservée telle quelle — un montage lié comme -v /data:/usr/share/nginx/html:ro reste /data:/usr/share/nginx/html:ro, et un volume nommé comme -v db-data:/var/lib/postgresql/data est repris à l’identique. Le suffixe :ro pour la lecture seule est préservé.

Chaque -e/--env est ajouté à la clé environment: sous forme d’une liste KEY=value. Par exemple -e POSTGRES_PASSWORD=secret devient une entrée - POSTGRES_PASSWORD=secret. Un --env-file est mappé séparément vers env_file:, vous gardez donc les secrets hors du fichier Compose versionné. La conversion étant entièrement locale, les variables porteuses de secrets ne quittent jamais votre navigateur.

L’indicateur --restart est mappé directement sur la clé restart: du service : --restart unless-stopped → restart: unless-stopped, et de même pour no, always et on-failure. Pour les déploiements en mode Swarm, restart est plutôt exprimé via deploy.restart_policy ; le convertisseur conserve la forme restart: simple, qui couvre l’usage docker compose up classique.

Oui. Le convertisseur docker run en compose est gratuit et s’exécute à 100 % côté client. La commande ou le YAML que vous collez est tokenisé et converti entièrement à l’intérieur de votre onglet de navigateur — rien n’est envoyé à un serveur, et il n’y a ni compte ni inscription. Une fois la page chargée, il fonctionne hors ligne, vous pouvez donc convertir en toute sécurité des commandes mentionnant des registres privés, des variables d’environnement porteuses de secrets ou des noms d’hôtes internes.

More free, private DevOps tools.

Le convertisseur Docker Run vers Compose est l’un des outils de OpsCanopy — une canopée grandissante de validateurs, de convertisseurs et de testeurs basés sur le navigateur qui ne touchent jamais à un serveur.

Vous débutez avec Docker ?  Lire le guide Docker →

39 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Outils connexes : le validateur GitLab CI et le calculateur de ressources Kubernetes. Parcourez le répertoire complet des outils.

Non affilié à Docker, Inc., ni approuvé ou sponsorisé par celle-ci. Docker, docker run et Docker Compose sont des marques de Docker, Inc., utilisées ici uniquement à titre descriptif pour identifier les formats de commande et de fichier entre lesquels cet outil convertit.