Es gibt Leistungsbereiche, die in docker-compose.yml definiert sind. Diese Dienste wurden gestartet. Ich muss nur eine davon neu erstellen und ohne andere Dienste starten. Ich führe die folgenden Befehle aus:
docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it still running !!!
docker-compose build --no-cache nginx
docker-compose up -d --no-deps # link nginx to other services
Am Ende habe ich einen alten Nginx-Container bekommen. Übrigens tötet Docker-Compose nicht alle laufenden Container!
docker-compose up --build
Antworten:
Docker-komponieren
quelle
docker-compose build service1 service2 --no-cache
macht diesen Job besser ( github.com/docker/compose/issues/1049 ). Ich hatte ein Problem mit zwischengespeicherten Containern, die vor der Verwendung erstellt wurdendocker-compose up -d --no-deps --build <service_name>
docker-compose build --no-cache service1 service2
Mit Docker-Compose 1.19
up
Ohne ein oder mehrere
service_name
Argumente werden alle Container neu erstelltAus dem Hilfemenü
quelle
docker-compose up -d --force-recreate --build container_name
build --no-cache
Option, es sei denn, die Befehlsbeschreibung ist völlig falschDies sollte Ihr Problem beheben:
quelle
stop
undrm
alle Container möchten, können Sie den Befehl verwendendocker-compose down
. Ihre Lösung ist besser, wenn Sie nur einige loswerden möchten.docker-compose build <id/name>
vorher tatsächlich laufenup
, um die geänderte Docker-Datei neu zu erstellen.Wie @HarlemSquirrel gepostet hat, ist es das Beste und ich denke die richtige Lösung.
Um das OP-spezifische Problem zu beantworten, sollte es sich jedoch um den folgenden Befehl handeln, da er nicht ALLE Dienste in der
docker-compose.yml
Datei neu erstellen möchte , sondern nur dennginx
einen:Beschreibung der Optionen:
quelle
Vielleicht sind diese Schritte nicht ganz richtig, aber ich mag das:
Stop Docker komponieren:
$ docker-compose down
Behälter entfernen:
$ docker system prune -a
Starten Sie Docker Compose:
$ docker-compose up -d
quelle
Verwenden Sie einfach:
Ersetzen Sie
[yml_service_name]
durch Ihren Dienstnamen in derdocker-compose.yml
Datei. Sie könnendocker-compose restart
damit sicherstellen, dass Änderungen vorgenommen werden. Sie können--no-cache
den Cache ignorieren.quelle
Das Problem ist:
hat nicht funktioniert (Sie sagten, es läuft noch). Wenn Sie es trotzdem wieder aufbauen wollen, können Sie versuchen, es zu töten:
Wenn es immer noch nicht funktioniert, versuchen Sie es direkt mit Docker zu stoppen:
oder löschen Sie es
Wenn dies immer noch nicht funktioniert, überprüfen Sie Ihre Docker-Version. Möglicherweise möchten Sie ein Upgrade durchführen.
Es könnte ein Fehler sein, Sie könnten überprüfen, ob einer mit Ihrem System / Ihrer Version übereinstimmt. Hier ein paar zum Beispiel: https://github.com/docker/docker/issues/10589
https://github.com/docker/docker/issues/12738
Um dieses Problem zu umgehen, können Sie versuchen, den Prozess abzubrechen.
quelle
Für mich wurden nur neue Abhängigkeiten von Docker Hub mit beiden
--no-cache
und--pull
(die für verfügbar sind) abgerufendocker-compose build
.quelle
Das Entfernen des Behälters mit rm ist unerlässlich. Ohne zu entfernen, startet Docker den alten Container.
quelle
Nur:
quelle