What is the relationship between the docker host OS and the container base image OS? Ask Question

What is the relationship between the docker host OS and the container base image OS? Ask Question

正しい質問をしているかどうかはわかりませんが、入手できるすべての docker に関する情報を読んでいると、Ubuntu 12.04 (例) に Docker をインストールして、Fedora コンテナーまたは別のバージョンの ubuntu をインストールできることがわかりました (ユーザーがコンテナーに busybox をインストールした例があります)。

もちろん、私が完全に間違っている可能性もあります。

しかし、ベース システムとコンテナーの間には一時的な接続が存在すると予想されます。

言い換えると、ホスト OS とコンテナ ベース イメージの OS の関係は何ですか?

ベストアンサー1

BraveNewCurrency が述べたように、ホスト OS とコンテナ間の唯一の関係はカーネルです。

これは、Docker と「通常の」仮想マシンの主な違いの 1 つであり、オーバーヘッドがなく、すべてがホストのカーネル内で直接実行されます。

このため、コンテナ内では Linux ベースのディストリビューション/バイナリのみを実行できます。他のものを実行したい場合、不可能ではありませんが、コンテナ内で何らかの仮想化 (qemu、kvm など) が必要になります。

Docker は、ファイル システム表現であるイメージを管理します。任意の Linux ディストリビューションをインストールしたり、単にバイナリを配置したりできます。

実際、この例では便宜上、ベース イメージを使用することが多いのですが、ディストリビューション ライブラリやバイナリを一切使用せずにイメージを作成することもできます。そうすれば、非常に小さいながらも機能的なコンテナーができます。

ディストリビューションに関するもう 1 つのポイント: カーネルは依然としてホストのカーネルであるため、ディストリビューションによって提供される特定のカーネル モジュール/パッチはありません。

おすすめ記事