特定のバージョンのDockerをインストールする

単純にDockerを使う分には最新のバージョン使ってればいいと思います。しかし、たとえばRancherのようなものを扱いたい場合、最新のバージョンのDockerをサポートしていなくて扱えなかったりします。こういう時バージョンを指定してインストールしたいものですが、どうすればいいんだよという話。

Rancherのサイトにあるスクリプトを実行する

Rancherの公式サイトには実行するだけで任意のバージョンのDockerをインストールできるシェルスクリプトが用意されています。

下のリンクからRancherのページに飛んでください

rancher.com

たとえば

curl https://releases.rancher.com/install-docker/17.03.sh | sh

を実行するとホストに17.03系の最新のDockerがインストールされます。

この17.03.shは単純にyumやaptのリポジトリの追加とDocker CEのインストールをしているだけです。ついでにDockerのデーモンも起動します。

バージョンの変化とスクリプトの変化

上でDockerをインストールして満足した人はここから先読まなくていいです。

気づいた方もいるとは思いますが、17.03.sh以降と17.03.shより前のバージョンのスクリプトでは、追加するリポジトリとインストールするパッケージが違います。

たとえば以下はCentOS7でスクリプトを実行した時

リポジトリ パッケージ
17.03.sh以降 https://download.docker.com/linux/centos/docker-ce.repo docker-ce-${docker_version}.ce
17.03.shより前 https://yum.dockerproject.org/repo/main/centos/7 docker-engine-${docker_version}

以下はUbuntu16.04で実行した時

リポジトリ パッケージ
17.03.sh以降 deb [arch=$(dpkg –print-architecture)] https://download.docker.com/linux/ubuntu xenial stable docker-ce-${docker_version}.ce
17.03.shより前 deb [arch=$(dpkg –print-architecture)] https://apt.dockerproject.org/repo ubuntu-xenial main docker-engine=${docker-version}~[ubuntu-xenial|xenial]

17.03.shからyumもaptも同じドメインリポジトリを使用していますね。そしてどちらもDocker CEをインストールするようになりました。

Docker EngineとDocker CE

結局のところ両方ともDockerなんですが、最近Docker CE(無償版)とDocker EE(有償版)というものができたのでDocker Engineというくくりで扱わなくなった模様。以下は参考

kenoha.hatenablog.com

www.publickey1.jp