ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

DockerをUbuntu Server 14.04.xに入れる時に注意すること

え?何でそんなに古いOSを今から入れるんだですって? まあ、たまにそういうこともあるんですよ。

Ubuntu Server 14.04(およびUbuntu Server 14.04.1)はGeneric Kernelが3.13系で、Ubuntu Server 14.04.2以降は14.04LTSと16.04LTSの間のUbuntu Serverと同様のカーネルバージョンが標準でインストールされます。

Ubuntu Server 14.04を今から必要な多くの人はUbuntu Server 14.04.5を使うと思います。このバージョンではUbuntu 16.04のGeneric Kernelと同じバージョンの4.4系のKernelが標準インストールされます。ただし、アップグレードをした場合は最後にインストールした時のKernelが維持されます。3.13系と4.4系以外のKernelはアップデートされませんので、3.13系へのダウングレードか、4.4系のアップグレードが必要です。

ちなみにUbuntu Server 16.04LTS以降では、OSのインストール時にHWE Kernelを導入するように選択するか、追加インストールしない限りGeneric Kernelがずっと使われるようです。

Ubuntu 16.04の場合は4.4系、Ubuntu 18.04の場合は4.15系です。このバージョンに対して、Canonicalのカーネルチームの手によってパッチが適用されたKernelがディストリビューションのサポート終了まで提供されます。

...話を戻しましょう。Ubuntu ServerにDcoker CEをインストールするときは次のようにセットアップします。

docs.docker.com

こちらには次のようなコマンドを実行するように書かれています。

$ sudo apt-get update
$ sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

Ubuntu 14.04.5はLinux kernel 4.4系がインストールされるので、 sudo apt-get update && sudo apt-get dist-upgradeして再起動した後、 sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual-lts-xenial をインストールする必要があります。

「linux-image-extra-virtual」ではなく「linux-image-extra-virtual-lts-xenial」をインストールすることがポイントです。 linux-image-extra-virtualパッケージは3.13カーネル向けのためです。

現在のバージョンのDocker CEがサポートするBionic 18.04 (LTS)、Xenial 16.04 (LTS)、Trusty 14.04 (LTS)のうち、このような注意が必要なバージョンはおそらくTrusty 14.04 (LTS)だけです。

Ubuntu 14.04(Trusty Tahr)は一般ユーザーは残り1年くらいのサポート期間しか残されていません。今から利用する場合はUbuntu 16.04LTSもしくはUbuntu 18.04LTSの方が良いと思います。