Je peux activer le redémarrage automatique avec --restart=always
, mais après avoir arrêté le conteneur, comment désactiver cet attribut?
Je lance normalement un serveur Web et mappe généralement le port 80:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Mais il y a des moments où je veux exécuter une version plus récente de mon image, mais je veux conserver l'ancien conteneur. Le problème est que s'il y a plusieurs conteneurs avec --restart=always
, un seul d'entre eux (aléatoire?) Démarre car ils sont tous en compétition pour le port 80 sur l'hôte.
docker update --restart=no $(docker ps -a -q)
pour mettre à jour tous vos conteneurs :-)Vous pouvez démarrer votre conteneur avec
--restart=unless-stopped
.la source
Utilisez ce qui suit pour désactiver TOUS les conteneurs à redémarrage automatique (démon).
Utilisez ce qui suit pour désactiver le redémarrage d'un seul conteneur.
Rationnel :
Docker fournit des stratégies de redémarrage pour contrôler si vos conteneurs démarrent automatiquement lorsqu'ils se terminent ou lorsque Docker redémarre. Ceci est souvent très utile lorsque Docker exécute un service clé.
Remarques
Si vous utilisez docker-compose, il peut être utile de le savoir.
la source
Si un essaim redémarre les conteneurs, l'essaim redémarrera tous les conteneurs que vous arrêtez ou rm, quelle que soit l'option de redémarrage. C'est une fonctionnalité, pas un bug.
Assurez-vous que vous n'exécutez pas un service que vous avez oublié:
Ensuite, vous pouvez arrêter le service
la source
ls
résultats en erreurError response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.