同じイメージ、コンテナ 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
意味するのに対し、「最後に保存された状態を使用してコンテナーを実行する」ことを意味します。停止"。