カーネルバージョンがDockerコンテナのUbuntuバージョンと一致しないのはなぜですか?


11

Ubuntu 14.10から構築されたDockerコンテナーがあります。コンテナにログインしてUbuntuバージョンとカーネルバージョンを確認すると、次のように表示されます。

root@~$>> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:    14.10
Codename:   utopic   

root@~$>> uname -a
    Linux ambiata-aws 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 14.10はカーネルバージョン3.16(ここに記載)であると考えられていたのに、なぜカーネルバージョン3.13.0-24-genericがあるのですか?

議論されている(私のドッキングウィンドウコンテナ内AUFSでfallocate作業を持っている)私はしたいことを3.13.0-29、一般的なパッチがあるので、私は求めています理由はここに


コンテナーはUbuntu Trustyで実行されていますか?もしそうなら、それが理由です。
saiarcot895

回答:


12

ドッカーとは何ですか?

軽量

単一のマシンで実行されているコンテナは、同じオペレーティングシステムカーネルを共有します。すぐに起動し、使用するRAMが少なくなります。画像は階層化されたファイルシステムから構築され、共通ファイルを共有するため、ディスクの使用と画像のダウンロードがより効率的になります。

コンテナはホストOSカーネルで実行されます。あなたの場合、ホストはUbuntu 14.04(元のカーネルを実行)またはUbuntu 12.04(trustyのハードウェア有効化スタックからカーネルを実行)になります。

ホストがUbuntu 14.04の場合、カーネル3.16をインストールできます。

sudo apt-get install linux-generic-lts-utopic

またはカーネル3.19:

sudo apt-get install linux-generic-lts-vivid

Ubuntu 12.04の場合、カーネル3.13は最新の公式のものです。


ホストカーネルをアップグレードする必要があるということですか?コンテナのカーネルをアップグレードする方法はありませんか?
jcm

5
@jcmコンテナ内にカーネルはありません。カーネルをインストールしても、コンテナの起動時にカーネルはロードされません。コンテナのまさに目的は、新しいカーネルを実行することなくプロセスを分離することです。これが、コンテナがLinuxに制限されている理由でもあります。別のOSまたは別のカーネルバージョンを実行する必要がある場合は、仮想化を使用する必要があります。
エリックカルヴァ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.