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.
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.
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
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.
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.
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
Calculateur chmod
chmod Calculator
Convertit entre notation octale, notation symbolique et cases à cocher, bits setuid et sticky compris.
Analyseur de fichier .env
.env Parser & Converter
Analyse un fichier .env et le convertit en JSON, en YAML, en exports shell, en format Docker ou en format Kubernetes.
Explorateur d’image Docker
Docker Image Explorer
Ouvre une archive d’image exportée et montre pour chaque couche la commande, le poids et les fichiers ajoutés ou supprimés.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Explorateur d’image Docker
Docker Image Explorer
Ouvre une archive d’image exportée et montre pour chaque couche la commande, le poids et les fichiers ajoutés ou supprimés.
Analyseur de fichier .env
.env Parser & Converter
Analyse un fichier .env et le convertit en JSON, en YAML, en exports shell, en format Docker ou en format Kubernetes.
Décodeur de Secret Kubernetes
Kubernetes Secret Decoder
Décode toutes les valeurs Base64 d’un manifeste Secret, et réencode celui que vous avez modifié, prêt à appliquer.
Formateur et validateur YAML
YAML Formatter & Validator
Réindente le YAML de façon cohérente, le valide et signale les tabulations et les ancres qui font échouer les analyseurs.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
curl vers code
curl to Code
Traduit une commande curl en fetch, axios, requests Python, Go, PHP ou PowerShell.