Einzelnen Docker-Compose-Container mit neuer Konfiguration neu erstellen

Einzelnen Docker-Compose-Container mit neuer Konfiguration neu erstellen

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 upwird 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 rmist das keine Option.

Antwort1

Führen Sie es einfach docker-compose uperneut 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 pullvorher 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 mycontainerunterschiedliche Docker-IPs angezeigt werden.

eine Art reloadBefehl wäre schön

verwandte Informationen