Mogę włączyć automatyczne ponowne uruchamianie za pomocą --restart=always
, ale po zatrzymaniu kontenera, jak wyłączyć ten atrybut?
Zwykle korzystam z serwera WWW i zazwyczaj mapuję port 80:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Ale są chwile, kiedy chcę uruchomić nowszą wersję mojego obrazu, ale chcę zachować stary kontener. Problem polega na tym, że jeśli istnieje wiele kontenerów --restart=always
, tylko jeden z nich (losowo?) Uruchamia się, ponieważ wszystkie rywalizują o port 80 na hoście.
docker update --restart=no $(docker ps -a -q)
aby zaktualizować wszystkie swoje kontenery :-)Możesz rozpocząć swój kontener od
--restart=unless-stopped
.źródło
Użyj poniższego, aby wyłączyć WSZYSTKIE kontenery automatycznie restartujące się (demon).
Użyj poniższego, aby wyłączyć ponowne uruchamianie POJEDYNCZEGO kontenera.
Racjonalne :
Docker zapewnia zasady ponownego uruchamiania, aby kontrolować, czy kontenery są uruchamiane automatycznie po zamknięciu lub po ponownym uruchomieniu platformy Docker. Jest to często bardzo przydatne, gdy Docker uruchamia usługę klucza.
Uwagi
Jeśli używasz docker-compose, warto to wiedzieć.
źródło
Jeśli masz rój ponownie uruchamiający kontenery, rój zrestartuje wszystkie kontenery, które zatrzymasz lub rm, niezależnie od opcji restartu. To jest funkcja, a nie błąd.
Upewnij się, że nie korzystasz z usługi, o której zapomniałeś:
Następnie możesz zatrzymać usługę
źródło
ls
powoduje błądError 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.