Les pubs vous déplaisent ? Aller Sans pub Auj.

Arrêtez de taper des commandes docker run — utilisez Docker Compose au lieu

Publié le

La plupart des commandes docker run se transforment en une série de flags difficile à maintenir. Ce guide explique comment convertir une commande docker run en docker compose — avec un tableau de référence des flags, un exemple de conversion réel et un outil de conversion gratuit.

Arrêtez d'écrire des commandes docker run — Utilisez Docker Compose à la place 1
ANNONCE · Supprimer ?

Chaque workflow Docker commence de la même manière : docker run. Une option, deux options — gérable. Mais d'ici à ce que vous lançiez un conteneur avec des ports, des variables d'environnement, des volumes, une politique de redémarrage et un réseau personnalisé, cette commande atteint 400 caractères de chose que personne ne peut se souvenir, ni contrôler par versionning, ni la transmettre à un collègue sans un thread Slack rempli de honte.

Docker Compose est la solution. Un fichier YAML remplace toute la commande — et vous l'avez dans git.

Pourquoi docker run arrête de s'adapter

Voici un exemple typique docker run commande pour une application Node.js :

docker run -d \
  --name my-app \
  -p 3000:3000 \
  -e NODE_ENV=production \
  -e DATABASE_URL=postgres://user:pass@db:5432/mydb \
  -v ./data:/app/data \
  --network app-network \
  --restart always \
  my-app:latest

Cela fonctionne. Une seule fois. Ensuite, vous fermez le terminal, ouvrez un nouveau l'une semaine plus tard, et n'avez plus la moindre idée des options utilisées. Il n'y a rien à git diff. Rien à partager avec un nouveau recrue. Aucun moyen de vérifier que l'environnement de staging correspond à celui de production.

Ce que Docker Compose vous offre

Docker Compose prend tout ce qui est rangé dans cette docker run commande et le met dans un fichier YAML appelé docker-compose.yml. Ce fichier :

  • Se trouve dans votre dépôt, à côté de votre code
  • S'exécute avec un seul docker compose up -d
  • S'exécute de manière identique sur chaque machine et environnement
  • S'adapte aux déploiements multi-services (application + base de données + cache) sans gymnastique d'options

Comment convertir une commande docker run

Cette même commande ci-dessus devient celle-ci docker-compose.yml:

version: "3.9"
services:
  my-app:
    image: my-app:latest
    container_name: my-app
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
      DATABASE_URL: postgres://user:pass@db:5432/mydb
    volumes:
      - ./data:/app/data
    networks:
      - app-network
    restart: always

networks:
  app-network:

Même comportement. Mais maintenant, elle est lisible, enregistrée et reproductible.

Lancer :

docker compose up -d

Arrêter :

docker compose down

Les flags docker run vers les clés docker-compose.yml

Un référentiel des options que vous utiliserez le plus fréquemment :

flag docker runclé dans docker-compose.ymlExemple
-p 8080:80ports:- "8080:80"
-e FOO=barenvironment:FOO: bar
-v ./data:/datavolumes:- ./data:/data
--network mynetnetworks:mynet
--restart alwaysrestart:always
--name mycontainercontainer_name:mycontainer
--memory 512mmem_limit:512m
--cpus 1.5deploy.resources.limits.cpuscpus: "1.5"
-dUtilisez -d flag en temps réeldocker compose up -d

Conversion automatique

Si vous avez une commande longue existante docker run — surtout une héritée d'un README ou d'un script de CI non touché depuis deux ans — vous n'avez pas besoin de mapper manuellement chaque option. Utilisez le Conversion de la commande Docker Run vers Compose: coller la commande, obtenir un résultat valide docker-compose.yml en sort.

Il gère les ports, les variables d'environnement, les volumes, les réseaux, les politiques de redémarrage, et bien plus. Utile pour migrer des commandes anciennes sans introduire d'erreurs lors de la conversion.

Si vous configurez des limites de ressources dans votre fichier Compose, le Calculateur de ressources de conteneur Docker vous aide à choisir des valeurs sensibles de mémoire et de CPU en fonction de votre charge de travail — avant de commettre des chiffres tirés de nulle part.

Vérifiez votre Dockerfile pendant que vous y êtes

Une fois que votre fichier Compose est mis en ordre, vérifiez le Dockerfile qu'il construit. Images de base non fixées, manque de WORKDIR, couches redondantes RUN — ces éléments sont facilement négligés et difficiles à déboguer plus tard. Le Linter Dockerfile les détecte avant qu'ils ne deviennent des problèmes en production.

Envie d'une expérience sans pub ? Passez à la version sans pub

Installez nos extensions

Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide

Sur Extension Chrome Sur Extension de bord Sur Extension Firefox Sur Extension de l'opéra

Le Tableau de Bord Est Arrivé !

Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !

ANNONCE · Supprimer ?
ANNONCE · Supprimer ?
ANNONCE · Supprimer ?

Coin des nouvelles avec points forts techniques

Impliquez-vous

Aidez-nous à continuer à fournir des outils gratuits et précieux

Offre-moi un café
ANNONCE · Supprimer ?