同じイメージ、コンテナ A、および B から 2 つのコンテナを実行する場合
ドライブを使用せずに、コンテナ A にパッケージ AA をインストールし、コンテナ B にパッケージ BB をインストールしたとします。
問題は、コンテナーは完全にステートレスなのかということです。これらのコンテナをまだ使用している限り、インストールされたパッケージはどこに保存されますか? コンテナ B からパッケージ AA にアクセスできますか? またその逆も可能ですか?
同じイメージ、コンテナ A、および B から 2 つのコンテナを実行する場合
ドライブを使用せずに、コンテナ A にパッケージ AA をインストールし、コンテナ B にパッケージ BB をインストールしたとします。
問題は、コンテナーは完全にステートレスなのかということです。これらのコンテナをまだ使用している限り、インストールされたパッケージはどこに保存されますか? コンテナ B からパッケージ AA にアクセスできますか? またその逆も可能ですか?
コンテナーはステートレスではなく、ステートフルです。各コンテナは、基本イメージの上に独自の完全所有の一意のオーバーレイ ファイルシステムを取得します。これらのコンテナーごとの変更 (状態) は互いに分離されているため、コンテナー B からパッケージ AA にアクセスすることはできません。docker rm container-aコンテナー A の固有のオーバーレイを削除するだけで、基本イメージは変更されません。docker startこれは、とdocker runが異なるコマンドである理由の一部です。これはrun、新しいコンテナーを作成することを意味するため、コンテナーごとの新しい状態 (最初は基本イメージ以外のものはありません) をstart意味するのに対し、「最後に保存された状態を使用してコンテナーを実行する」ことを意味します。停止"。