コンテナがサーバーパッケージを使用するのか、それとも自己決定方法を使用するのかを決定します。

コンテナがサーバーパッケージを使用するのか、それとも自己決定方法を使用するのかを決定します。

コンテナ化に関する私の理解は限られているので、この質問は間違って案内されるかもしれませんが、Dockerコンテナは比較的軽い状態を維持するためにホストシステムのカーネルリソースのいくつかを利用することを知っています。私が知っている限り、これはオペレーティングシステムの分散パッケージ(binutilsなど)に拡張できます。

ドッカーコンテナがホストが提供するパッケージを利用できると考えるのは間違いではないと仮定すると、ホストされたときにコンテナが特定のサーバーで見つけることを期待/意図するすべてのパッケージを列挙する標準的な方法はありますか?

答え1

Dockerコンテナは、比較的軽い状態を維持するためにホストシステムのカーネルリソースのいくつかを利用することを知っています。

はい、コンテナはホストカーネルを共有します。

私が知っている限り、これはオペレーティングシステムの分散パッケージ(binutilsなど)に拡張できます。

それできるしかし、これは非常にまれで、コンテナの外部で手動設定が必要です。デフォルトでは、コンテナがファイルシステムの関連部分にアクセスできるように、ホストからボリュームをマウントする必要があります。

ほとんどの場合、コンテナのユーザースペース部分はホストから完全に分離されています。コンテナがホストで見つけることを期待するパッケージを列挙する標準的な方法はありません。コンテナは一般的にそのような期待を持っておらず、そのような期待を宣言する方法がないからです。そのようなコンテナを見つけたら、ドキュメントはそれが何であるか、配布記述子があるかどうかを伝えます(例えばKubernetes用のHelmダイアグラムには、必要なボリュームとマウントポイントが含まれています(ただし、ホストで何が必要かはわかりません)。

コンテナは事実上ホストに拘束されません。適切なコンテナランタイムを持つすべてのシステムで実行され、ホストは目的のパッケージシステムを使用したり、まったく使用したりすることはできません。したがって、コンテナにはホストからパッケージを要求するために必要な概念さえありません。これはコンテナの基本原則の一部に違反することです。

関連情報