Les autres réponses au redémarrage d' un noeud unique est sur la cible, docker-compose restart worker
. Cela fera rebondir ce conteneur, mais n'inclura aucune modification, même si vous l'avez reconstruit séparément. Vous pouvez manuellement stop
, rm
, create
et start
, mais il y a beaucoup de méthodes plus faciles.
Si vous avez mis à jour votre code, vous pouvez faire la construction et recharger en une seule étape avec:
docker-compose up --detach --build
Cela va d'abord reconstruire vos images à partir de n'importe quel code modifié, ce qui est rapide s'il n'y a pas de changements puisque le cache est réutilisé. Et puis il ne remplace que les conteneurs modifiés. Si vos images téléchargées sont périmées, vous pouvez faire précéder la commande ci-dessus avec:
docker-compose pull
Pour télécharger d'abord les images modifiées (les conteneurs ne seront pas redémarrés tant que vous n'aurez pas exécuté une commande comme celle up
ci - dessus). Faire un arrêt initial n'est pas nécessaire.
Et pour ne le faire que pour un seul service, suivez la commande up ou pull avec les services que vous souhaitez spécifier, par exemple:
docker-compose up --detach --build worker
Voici un exemple rapide de la première option, le Dockerfile est structuré pour garder les parties du code qui changent fréquemment près de la fin. En fait, les exigences sont extraites séparément pour le, pip install
car ce fichier change rarement. Et comme les conteneurs nginx et redis étaient à jour, ils n'ont pas été redémarrés. Le temps total pour l'ensemble du processus était inférieur à 6 secondes:
$ time docker-compose -f docker-compose.nginx-proxy.yml up --detach --build
Building counter
Step 1 : FROM python:2.7-alpine
---> fc479af56697
Step 2 : WORKDIR /app
---> Using cache
---> d04d0d6d98f1
Step 3 : ADD requirements.txt /app/requirements.txt
---> Using cache
---> 9c4e311f3f0c
Step 4 : RUN pip install -r requirements.txt
---> Using cache
---> 85b878795479
Step 5 : ADD . /app
---> 63e3d4e6b539
Removing intermediate container 9af53c35d8fe
Step 6 : EXPOSE 80
---> Running in a5b3d3f80cd4
---> 4ce3750610a9
Removing intermediate container a5b3d3f80cd4
Step 7 : CMD gunicorn app:app -b 0.0.0.0:80 --log-file - --access-logfile - --workers 4 --keep-alive 0
---> Running in 0d69957bda4c
---> d41ff1635cb7
Removing intermediate container 0d69957bda4c
Successfully built d41ff1635cb7
counter_nginx_1 is up-to-date
counter_redis_1 is up-to-date
Recreating counter_counter_1
real 0m5.959s
user 0m0.508s
sys 0m0.076s