
Wenn ich Änderungen an meinem vornehme docker-compose.yml
(z. B. ändere, auf welchem Host-Port ein Container-Port verfügbar gemacht wird), kann ich dann diesen einzelnen Container neu erstellen oder muss ich den gesamten Stapel neu starten?
docker-compose stop ; docker-compose up
wird funktionieren, aber ich möchte vermeiden, die restlichen Dienste neu zu starten. Ich möchte auch vermeiden, dass Volumes gelöscht werden, die mit dem Dienst verknüpft sind, den ich neu starte, also docker-compose kill <service> ; docker-compose rm
ist das keine Option.
Antwort1
Führen Sie es einfach docker-compose up
erneut aus. Alles, was von Ihrer Änderung betroffen ist (Container, Volume, Netzwerk usw.), wird neu erstellt, die anderen Container bleiben erhalten.
Wenn Sie neuere Bilder verwenden möchten, führen Sie es docker-compose pull
vorher aus.
Antwort2
Manchmal werden Änderungen an einer Umgebungsdatei ignoriert. Dann mache ich
docker stop mycontainer
docker compose up
Dadurch werden ein einzelner Container und abhängige Container neu gestartet, was Sie tun. Das Vermeiden des Neustarts abhängiger Container ist keine gute Idee, da dadurch mycontainer
unterschiedliche Docker-IPs angezeigt werden.
eine Art reload
Befehl wäre schön