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?

Inquisiteur Shm
la source

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...

icarito
la source
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

Jordan Morris
la source
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

gabriel1836
la source
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.

user674669
la source