2016-07-25 6 views
2

Ich habe f.e. zwei Container in DockerDocker Container mit dem gleichen Volumen auch nach dem Ausführen neuer Container Bild

compose.yml

version: '2' 
services: 
    nginx: 
    image: local-nginx:0.3 
    ports: 
     - "81:81" 
    volumes_from: 
     - webapp 
    webapp: 
    image: local-webapp:0.65 

Webapp Dockerfile

FROM node:4.3.0 
... 
VOLUME /www 
CMD npm run some_script 

Also, was passiert, Webapp Container Aktien Ordner/www zu nginx und statische Dateien dienen aus Nginx-Container. Ich beginne meine app mit dem Befehl

docker-compose -f compose.yml up 

alles funktioniert gut, gut. Aber wenn ich zum Beispiel läuft Anwendung mit einer anderen Version von local-Webapp Webapp will: 0,66 I Version 0.66 in compose.yml ändern, aktuelle Container stoppen und läuft wieder

docker-compose -f compose.yml up 

Aber ich sehe immer noch die dieselbe Version von Webapp. wenn ich in den nginx-container gehe, sehe ich immer noch dieselben dateien von der vorherigen 0.65. Um korrekte Dateien anzuzeigen, muss ich alle Container entfernen und docker-compose -f compose.yml erneut erstellen.

Also, die Frage. Wie ist es möglich, meine compose.yml-Datei zu konfigurieren, um das Volume zu aktualisieren, ohne alle Container zu entfernen?

+0

Dies ist etwas unklar - Sie sagen, dass * obwohl kein 0.65-Container vorhanden ist *, sehen Sie immer noch ein Volume aus einem 0.65-Container? –

+0

Container 0.65 existiert, aber ich habe die Version in compose.yml auf 0.66 geändert. Gestoppte Container und erneut ausgeführt ** docker-compose -f compose.yml up ** mit neuen Versionen. Erst nachdem alle Container entfernt wurden, gilt die Änderung – user990993

Antwort

1

Dies ist, weil Compose preserves volumes.

Wenn Sie neue Daten möchten, haben Sie zwei Möglichkeiten:

  • nicht mit einem Volumen
  • die Behälter entfernen erste
Verwandte Themen