Ubuntu 16.04 LTS に Docker CE をインストールする

##### 動作環境
* Ubuntu 16.04.6 LTS / x86_64

# Docker のエディションについて
[公式ドキュメント：Overview of Docker editions][1]によると、Docker には以下の2つのエディションが存在します。

* Community Edition (CE)：無償。個人、小規模なチーム向け。
* Enterprise Edition (EE)：有償。商用、大規模チーム向け。

今回は個人でのお試し環境ということで、タイトル通り CE をインストールしました。

# インストール
何かに躓いたら追記しようと思っていましたが、特に問題が無かったので、
ほぼ[公式ドキュメント：Get Docker CE for Ubuntu][2]の抜粋＆日本語化になってしまいました。

## 事前準備
### 古いバージョンのアンインストール
古いパッケージ(docker, docker.io , or docker-engine)がインストールされていたら削除します。

```shell
$ sudo apt-get remove docker docker-engine docker.io containerd runc
```

## インストール
以下の3つの方法でインストールが可能です。
1. 公式リポジトリを使う (apt コマンドを使う)
2. DEB パッケージを使う
3. インストール用スクリプトを使う

今回はリポジトリを使う方法でインストールしてみました。

### リポジトリを使ったインストール
#### リポジトリのセットアップ
```shell
# インデックスの更新
$ sudo apt-get update
# 前提パッケージのインストール
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# Dockerの公式 GPG key の登録
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
# リポジトリの追加
## x86_64 / amd64 の場合
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
## armhf の場合
$ sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
## arm64 の場合
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```
”stable”の部分は"test"や"nightly"にも変更できます。

* Stable: 最新の標準リリースバージョン
* Test: テスト用のプレリリースバージョン
* Nightly: 開発中の最新ビルド

新しい機能を使いたい等の理由が無ければ、Stable 版が問題も出にくいので良いと思います。

#### Docker CE のインストール
```shell
# インデックスの更新
$ sudo apt-get update
# Docker CE のインストール
## 最新バージョンの場合
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
```

## 動作確認
```shell
$ sudo docker run hello-world
```
以下のように表示されます。

<details><summary>省略(クリックすると展開されます)</summary><div>

```
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest
```
</div></details>

```
Hello from Docker!
This message shows that your installation appears to be working correctly.
```
<details><summary>省略(クリックすると展開されます)</summary><div>

```
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
 ```
 </div></details>

# その他の設定
[dockerコマンドをsudoなしで実行する方法][3]をやっておくと使い勝手が良いと思います。

[1]:https://docs.docker.com/install/overview/
[2]:https://docs.docker.com/install/linux/docker-ce/ubuntu/
[3]:https://qiita.com/tkomagata/items/198a3fac14aadf37244c#docker%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92sudo%E3%81%AA%E3%81%97%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95