Aller au contenu
ToolMug

docker run vers Docker Compose

Collez une ou plusieurs commandes docker run pour obtenir le compose.yaml équivalent. Ports, volumes, variables d'environnement, réseaux, politique de redémarrage, limites de mémoire et de CPU, journalisation et health checks sont convertis, et les options qui ne peuvent pas l'être sont listées afin de les ajouter à la main.

Fonctionne dans votre navigateur — rien de ce que vous saisissez n’est envoyé

docker run → Docker Compose
docker run
Docker Compose

Mode d’emploi

  1. Collez des commandes docker run à gauche. Les commandes multi-lignes avec barres obliques inverses en fin de ligne fonctionnent ; séparez plusieurs commandes par des retours à la ligne, des points-virgules ou &&.
  2. Le fichier Compose apparaît à droite. Chaque commande devient un service nommé d'après --name, ou d'après l'image en son absence.
  3. Vérifiez la note jaune pour ce qui n'a pas été converti, puis copiez ou téléchargez compose.yaml et exécutez docker compose up -d.

Explication des options

Options prises en charge
-p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only et plus encore.
Volumes et réseaux nommés
Les volumes nommés (comme pgdata:/data) sont déclarés sous la clé volumes de premier niveau. Les réseaux personnalisés sont déclarés avec external true, ce qui suppose un réseau déjà existant. Les réseaux host et none deviennent network_mode.
Ports
Les correspondances de ports sont toujours mises entre guillemets. YAML 1.1 lit des valeurs comme 22:22 comme des nombres en base 60, et la documentation Docker recommande d'écrire les ports sous forme de chaînes.
Options ignorées
-d et --rm n'ont pas d'équivalent Compose et sont supprimées. Les options non prises en charge comme --gpus sont listées dans la note.

Exemple

docker run -d --name web --restart unless-stopped -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27

devient :

services:
  web:
    image: nginx:1.27
    container_name: web
    restart: unless-stopped
    mem_limit: 512m
    ports:
      - "8080:80"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./html:/usr/share/nginx/html:ro

Questions fréquentes

Le fichier a-t-il besoin d'une ligne de version ?

Non. Docker Compose actuel (v2) n'utilise plus la clé version de premier niveau ; si elle est présente, elle est ignorée avec un avertissement.

Les mots de passe dans mes variables d'environnement sont-ils envoyés quelque part ?

Non. L'analyse et la conversion s'exécutent dans votre navigateur et rien n'est envoyé à un serveur.

Les arguments entre guillemets sont-ils gérés ?

Oui. Les guillemets simples, les guillemets doubles et les échappements par barre oblique inverse suivent les règles du shell, donc -e "MSG=hello world" conserve la valeur complète.

Confidentialité

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers et vos textes sont traités sur votre appareil et ne sont jamais envoyés à nos serveurs.

Outils similaires