任意バージョンのDockerをインストールする



# 目的
デバッグなどの目的で過去のバージョンのDockerをインストールする
ための手段を整理する。

# 前提

Ubuntu 16.04


# 概要

docker-engineパッケージをバージョンを指定してインストールする。

# 注意

docker-engineパッケージは現時点(2017/5/31)では
まだ提供されていますが、将来的にはdocker-ceまたはdocker-eeパッケージに
まとめられるはずなのでいつまでも利用できるわけではない点に注意してください。

また、現在Dockerが正式に提供しているドキュメントには記載されていない
手順のため、ある日突然利用できなくなる可能性があります。
(この辺りの情報をご存知のかたいらっしゃれば教えてください)


# 手順

## 事前に必要なパッケージの導入

```bash
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

```


## リポジトリの追加



```bash:リポジトリの追加
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ sudo vi /etc/apt/sources.list.d/docker.list
```

```text:docker.listの内容
deb https://apt.dockerproject.org/repo ubuntu-xenial main
```

## 導入可能なバージョンの確認

```bash:導入可能なバージョンを確認
$ sudo apt-get update
sudo apt-cache madison docker-engine
docker-engine | 17.05.0~ce-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 17.04.0~ce-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 17.03.1~ce-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 17.03.0~ce-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.13.1-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.13.0-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.6-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.5-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.4-0~ubuntu-xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.3-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.2-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.1-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.12.0-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.11.2-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.11.1-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
docker-engine | 1.11.0-0~xenial | https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages

```

この時は1.11.0までインストール可能だったようです。

## dockerのインストール
apt-getでバージョン指定してインストールします。

```bash:バージョンを指定してインストール（今回は1.12.1）
$ sudo apt-get install -y docker-engine=1.12.1-0~xenial
```


```bash:インストール後の確認
$ sudo docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.1     <--- 無事1.12.1がインストールされている
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge overlay null host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.859 GiB
Name: ubuntu-001
ID: 2XZU:U2JH:EQH5:XSZM:47EV:XGN2:YJ7O:VYDC:Y3A5:A6KD:DY26:I7VE
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8
```