docker-compose vers le haut / bas un seul conteneur


33

Je n'ai pas pu trouver un moyen de monter / descendre un seul conteneur dans un fichier docker-compose.yml. Je peux bien sûr démarrer et arrêter un seul conteneur, mais je ne peux pas modifier la configuration des conteneurs entre les redémarrages (variables d'environnement, points de montage, etc.)

Qu'est-ce que j'oublie ici? Quelle est la meilleure pratique dans ce cas?

Réponses:


4

J'ai eu ce besoin récemment et l'ai résolu en ayant un docker-compose-production.ymlfichier séparé pour gérer les ajustements. N'oubliez pas de lancer avecdocker-compose -f docker-compose-production.yml...


Comment cela fonctionne-t-il quand vient le temps de le faire docker-compose down? Cela ne ferait-il pas disparaître tous les conteneurs qui ont été mis en place dans tous les fichiers .yml?
Jordan Morris

2
Vous pouvez le fairedocker-compose -f docker-compose-production.yml down
icarito

Et où spécifiez-vous le conteneur que vous souhaitez monter / descendre? -fest le sélecteur de fichier de composition, pas de conteneur.
astrowalker

31

J'ai trouvé que cela avait le même effet que docker-compose down pour un seul service:

docker-compose rm -f -s -v yourService

docker-compose rm

Utilisation: rm [options] [SERVICE ...]

Options:
-f, --force Ne pas demander de confirmer la suppression
-s, --stop Arrêtez les conteneurs, si nécessaire, avant de supprimer
-v Supprimez tous les volumes anonymes attachés aux conteneurs

Vous pouvez condenser tous les drapeaux en un seul -paramètre:docker-compose rm -fsv yourService


Je pense que dispose du disque, btw
Jordan Morris

2
Pourriez-vous expliquer les drapeaux, ce qu'ils feraient?
Semo

13

Je vous suggère de consulter cet excellent fil de discussion sur stackoverflow.com. La réponse rapide ici pour reconstruire le conteneur unique et le redémarrer est:

docker-compose up -d --build worker

Ce serait la solution idéale si, par exemple, vos modifications impliquaient votre Dockerfile et pas seulement docker-compose.ymll


7

Vous pouvez utiliser

$ docker-compose -f docker-compose.yml up yourService

pour démarrer juste votreService et toutes les dépendances requises par celui-ci.

Donc, si votreService dépend du conteneur mysql, la commande ci-dessus démarrerait les deux conteneurs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.