docker は起動時にスクリプトを実行し、変更をコミットしてマウントされたスクリプトを削除します。

docker は起動時にスクリプトを実行し、変更をコミットしてマウントされたスクリプトを削除します。

既存のイメージで実行したいスクリプトがあります。このために、コンテナの実行中にスクリプトをマウントし、変更をコミットしてイメージを置き換えます。開始時にスクリプトをバインドする際の問題は、ボリュームが新しいイメージにも残ることです。イメージで検査を実行すると、永続的な引数になり、ホスト システムにワンタイム スクリプトがないため実行が失敗することがわかります。

スクリプトを実行して OS レベルの変更を行い、完全に削除する方法はありますか。スクリプトはかなり複雑で、他のスクリプトも多数呼び出します。

スクリプトでコンテナを実行するコマンド

 docker run --name temp_container --ipc host -v /path_to_scripts_dir:/new_dir iamge bash -v /new_dir/call_scripts.sh'

Docker は初めてなので、何かアドバイスがあれば助かります。

答え1

旗を使って試してみるのもいいでしょう--rm

デフォルトでは、コンテナのファイルシステムはコンテナが終了した後も存続します。これによりデバッグがはるかに簡単になり(最終状態を検査できるため)、すべてのデータがデフォルトで保持されます。ただし、短期間のフォアグラウンドプロセスを実行している場合、これらのコンテナファイルシステムが実際に蓄積される可能性があります。代わりに、コンテナが終了したときにDockerが自動的にコンテナをクリーンアップしてファイルシステムを削除するようにしたい場合は、--rmフラグを追加します。

Docker 実行リファレンス

関連情報