128

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

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

しかし、基本システムとコンテナーの間に一時的な接続があったことは私の予想です。

言い換えると、ホスト OS とコンテナーの基本イメージの OS との関係はどのようなものですか?

4

3 に答える 3

103

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

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

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

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

実際、例の便宜上、基本イメージに依存することがよくありますが、配布ライブラリ/バイナリを使用せずにイメージを作成することもできます。そうすれば、非常に小さいながらも機能的なコンテナを作成できます。

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

于 2013-09-17T21:11:11.347 に答える
25

文字通り、共通点はカーネルだけです。彼らの全世界(ファイルシステム)はドッカーコンテナにあります。

于 2013-09-15T00:32:40.387 に答える