Zuerst gibt es keine running image
, nur running container
. Image ist etwas, das in Docker Art geliefert werden kann, Sie bauen Ihre image
und starten dann eine container
davon.
Um Ihr Problem, ich glaube, Sie Ihre Möglichkeiten erwähnt:
- Rebuild Ihr Bild
- Go in einem Laufbehälter, Änderungen vornehmen und
docker commit
es zurück. Persönlich verwende ich nur diesen Weg, um ein kleines Problem zu beheben oder einen Hotfix zu meinem Bild zu machen, wenn docker build
eine sehr lange Zeit braucht.
Docker verwendet union FS mit copy on write Bild zu bauen, was bedeutet, wenn Sie eine Änderung an ein Bild machen möchten, können Sie es an Ort und Stelle nicht ändern kann, es zusätzliche Schicht erstellen werden (n) Ihre Änderung widerzuspiegeln (s), wird in einigen Fällen nur der gleiche Bildname verwendet. Und aus der Perspektive der Lieferung, ich denke, es ist völlig in Ordnung, ein neues Bild (mit verschiedenen Tag) für jede Version zu bauen, oder sogar sollte es so gemacht werden, deshalb haben Sie eine Dockerfile
, und Bilder sind nicht nur etwas, was Sie starten Ihr Container, sie sind tatsächlich Versionslieferungsartefakte und Sie können zu jeder Version zurückkehren, wenn Sie wollen/brauchen. Also ich denke, Ihre aktuelle Lösung ist in Ordnung.
Noch ein paar Worte hier: für die lokale Entwicklung und Test, können Sie einfach montieren Ihre /app.py
als Volume zu Ihrem Container, wenn Sie es starten, so etwas wie docker run -v /path/to/host/app.py:/path/to/container/app.py your_base_image_to_run_app
, dann alles, was Sie auf Ihrem lokalen FS zu app.py
geändert, es‘ lle reflektiere den Behälter. Wenn du deinen Job fertig hast, baue ein neues Bild.
Also meinst du das Docker-Image-Dateisystem öffnen und die Änderungen direkt dort vornehmen? – chris
Sie können immer in den Container gehen und das Dateisystem ändern und ein neues Image daraus erstellen. Aber es ist nicht ideal, wenn die Änderung auf demselben Wert oder derselben Konfiguration basiert. Was ich sage ist, dass, wenn Änderungen im Bild häufig sind, verwenden Sie Umgebungsvariablen, um Konfigurationsänderungen einzubeziehen. Verwenden Sie diese Variablen und aktualisieren Sie die app.py-Datei entsprechend. –