2017-12-21 3 views
2

Ich bin neu bei den Hafenarbeitern so weiß nicht wirklich, wie Docker Bild zu aktualisieren. Ich habe einen Python-Code und ich habe sein Docker Bild mit dem folgenden Befehl erstellt:So aktualisieren Sie benutzerdefinierte Python Docker Bild

sudo docker build -t mycustomdocker . 

Nachdem dies geschehen ist, kann ich mein Docker Bild mit sudo docker images sehen. Um es auszuführen, kann ich verwenden:

sudo docker run --restart=always mycustomdocker 

Dies wird seinen Behälter beginnen und mit Neustart immer, wird es immer laufen.

Jetzt möchte ich zum Beispiel wissen, dass ich meinen Python-Code aktualisiert und ein neues Feature hinzugefügt habe. Nach dem Update des Python-Codes wird das Image mycustomdocker automatisch aktualisiert oder wir müssen einen Update-Befehl ausführen. Oder müssen wir den Container erneut anhalten, das vorhandene Bild löschen und das Image erneut erstellen?

Dank

Antwort

1

Es hängt davon ab, wie Sie Dateien über in den Behälter bekommen. Wenn Sie ADD oder COPY verwenden, dann müssen Sie den laufenden Container stoppen, das Image neu erstellen und dann erneut starten.

Doch was wir dazu neigen, zu tun, die Dinge laufen zu halten, schnell ist so etwas wie:

# ... 
ADD ./src/ /something/src/ 
# ... 

Und dann, wenn

sudo docker run --volume ${PWD}/src/:/something/src/ --restart=always yourcontainer 

laufen, die alles in den Behälter /something/src/ Datei überschreiben mit was auch immer ist in Ihrem lokalen Verzeichnis ./src/, ohne neu zu erstellen. Wenn Sie den Container veröffentlichen oder von einem anderen Ort als dem Verzeichnis ausführen möchten, in dem Sie arbeiten, müssen Sie ihn erneut erstellen.

Lesen Sie this article über gute Speicherpraktiken für weitere Informationen. Auch würde vorschlagen, in docker-compose suchen, um dies noch einfacher zu machen, aber das ist ein bisschen über den Rahmen dieser Frage.

+0

Ich habe Docker mit der Dockerfile erstellt. 'ADD ./src//something/src/' behaltst du das in der Dockerfile. – user27654321

+0

Wenn Sie die Bilder dann ja verteilen möchten, müssen Sie sie direkt mit 'ADD' hinzufügen. Volumes ersetzt nur vorübergehend das Verzeichnis innerhalb des Containers. – SCB

Verwandte Themen