Ich habe ein Docker-Compose-Projekt mit Docker für Mac, das beim Starten des Computers automatisch gestartet wird.
Normalerweise starte ich das Projekt mit docker-compose up -d
, aber sogar läuft docker-compose stop
vor dem Herunterfahren wird der Autostart beim Booten erneut gestartet.
Mir ist nicht bewusst, dies spezifisch zu ermöglichen. Wie kann ich es deaktivieren?
Heute hatte ich das gleiche Problem, dass alle Container gestartet werden, wenn ich meinen Entwickler-Laptop starte, als restart: always
wurde in den .yml-Dateien festgelegt.
Da ich die .yml-Dateien nicht berühren möchte, habe ich gerade herausgefunden (danke Bobby), wie ich diese Einstellung ändern kann, indem ich:
docker update --restart=no <MY-CONTAINER-ID>
Versuchen Sie es mit docker-compose down
Anstelle von docker-compose stop
Stoppt Container und entfernt Container, Netzwerke, Volumes und Images, die von up erstellt wurden. Als extern definierte Netzwerke und Volumes werden nie entfernt .
Stoppt den Betrieb von Containern, ohne diese zu entfernen. Sie können erneut mit docker-compose start
Gestartet werden.
restart: no
ist der Standardmodus. In Ihrer Docker-Compose-Datei befindet sich eine Zeile mit restart: no
oder restart: unless-stopped
. Dies bedeutet auch, dass beim Starten des Systems die Container (neu) neu gestartet werden, solange der Docker-Daemon vorhanden ist. Details
Sie müssen restart
in no
oder ändern. on-failure
, Beispiel:
version: '2.1'
services:
backend:
restart: on-failure
build:
args:
USER_ID: ${USER_ID}
context: codebase/namp-backend
dockerfile: Dockerfile.dev
ports:
- "5001:5001"
- "5851:5851"
volumes:
- ./codebase/namp-backend:/codebase
environment:
Ebenfalls docker-compose down
gibt in den meisten Fällen das gleiche Ergebnis - starten Sie keine Container während des (Docker-) Systemstarts, außer: Container werden danach gelöscht, nicht gestoppt.
Neben der Einstellung restart: unless-stopped
, vorhandene Container entfernen und neu erstellen.
docker-compose down
docker-compose up -d
Jetzt würde es wie erwartet funktionieren:
docker-compose stop
Sudo service docker restart
docker-compose ps
# should NOT HAVE containers running
docker-compose up -d
Sudo service docker restart
docker-compose ps
# should HAVE containers running