
Ich habe ein Skript, das ich auf vorhandenen Images ausführen möchte. Dazu mounte ich das Skript, während der Container ausgeführt wird, übernehme Änderungen und ersetze das Image. Das Problem beim Binden des Skripts beim Start besteht darin, dass das Volume auch im neuen Image verbleibt. Beim Ausführen einer Überprüfung auf dem Image kann ich sehen, dass es zu einem permanenten Argument wird und der Lauf fehlschlägt, da das Hostsystem nicht über das einmalige Skript verfügt.
Gibt es eine Möglichkeit, das Skript auszuführen, Änderungen auf Betriebssystemebene vorzunehmen und vollständig zu entfernen? Das Skript ist ziemlich kompliziert und ruft auch eine Reihe anderer Skripte auf.
Befehl zum Ausführen des Containers mit Skript
docker run --name temp_container --ipc host -v /path_to_scripts_dir:/new_dir iamge bash -v /new_dir/call_scripts.sh'
Neu bei Docker, alle Hinweise wären hilfreich!
Antwort1
Sie könnten es mit der --rm
Flagge versuchen.
Standardmäßig bleibt das Dateisystem eines Containers auch nach dem Beenden des Containers bestehen. Dies erleichtert das Debuggen erheblich (da Sie den Endzustand prüfen können) und Sie behalten standardmäßig alle Ihre Daten. Wenn Sie jedoch kurzfristige Vordergrundprozesse ausführen, können sich diese Containerdateisysteme wirklich anhäufen. Wenn Sie stattdessen möchten, dass Docker den Container automatisch bereinigt und das Dateisystem entfernt, wenn der Container beendet wird, können Sie das Flag --rm hinzufügen.