UbuntuのDockerパッケージをdocker-engineに切り替えてみた

docker
Ubuntu 14.04にインストールしていたDockerを最新にするため、docker-engineに切り替えてみました。
「Installation on Ubuntu」(https://docs.docker.com/engine/installation/linux/ubuntulinux/)通りに行かない部分がありましたので記録しておきます。
記事を書き終わった後で気が付きましたが、上記の日本語版がここ(http://docs.docker.jp/engine/installation/linux/ubuntulinux.html)にありました。

スポンサーリンク

準備

docker-engineでは、3.10以上のカーネルが必要となるようです。一応確認しておきます。

$ uname -r
3.13.0-85-generic

カーネルは3.13なので、条件をクリアしています。
パッケージ情報をアップデートし、httpsに対応したaptとca-certificatesをインストールします。

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates

GPGキーを追加します。

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

「Installation on Ubuntu」には、/etc/apt/sources.list.d/docker.listがあれば好きなエディタで開いて、既存のエントリーを削除し、docker.listが無ければ新規に作成するとあります。docker.listは無かったので、geditで新規に作成します。

$ sudo gedit /etc/apt/sources.list.d/docker.list

Ubuntu 14.04を使用しているので下記エントリー(Ubuntu 14.04以外の場合、「Installation on Ubuntu」を参照して、対応するエントリーに変更します)を追加して、docker.listを保存し、geditを閉じます。

deb https://apt.dockerproject.org/repo ubuntu-trusty main

docker.listを作成(/変更)したので、パッケージ情報をアップデートします。

$ sudo apt-get update

ここまで、Docker Docs通りに順調にきましたが、既存のパッケージをアンインストールする以下のコマンドが上手く行きません

$ sudo apt-get purge lxc-docker
...
Package 'lxc-docker' is not installed, so not removed

Dockerがインストールされているのは間違いないのですが、lxc-dockerではないようです。
インストールされているパッケージを確認します。

$ dpkg --list | grep docker
ii  docker.io  ...

インストールされているDockerパッケージは、lxc-dockerではなくdocker.ioでした。パッケージ名を変更して、既存のパッケージをアンインストールします。

$ sudo apt-get purge docker.io

docker-engineのパッケージ情報を確認します。

$ sudo apt-cache policy docker-engine

aufsを使用するためにlinux-image-extraをインストールします。

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

また、Ubuntu 14.04の場合、apparmorも必要となるようです。

$ sudo apt-get install apparmor

docker-engineのインストール

準備が終了しましたので、docker-engineをインストールします。

$ sudo apt-get install docker-engine

docker.ioは、アンインストール時点で1.6.2でしたが、docker-engineは、1.10.3がインストールされました。
Dockerサービスを起動します。

$ sudo service docker start

Dockerが正しくインストールされていることを確認します。

$ sudo docker run hello-world

docker-engineの更新

アップデートの催促が出るたびソフトウェアの更新を行うと、インストールしたdocker-engineは、1.10.3から1.11.0、1.11.1と更新されてます。
更新の方も、上手く行っているようです。