dockerをdaemon.json追加すると起動できない問題を解決する方法

# 背景
kubernetesをセットアップする過程でdockerインストール後にdaemon.jsonファイルを作成してdocker再起動するとエラーになる件を調査する
以下はdockerインストールを参考にするサイト
https://v1-15.docs.kubernetes.io/docs/setup/production-environment/container-runtimes/

手っ取り早く、結論と対策を知りたい方は、下を実施してみてください。



# 結論
- centos 7.6は現時点でkernelの最新は3.10の為、`overlay2`は利用できなかった
- `overlay`が対応するfilesystemに`xfs`は含まれているが、`xfs`では`overlay`が利用できないみたい（ext4で再セットアップした環境では起動できた）

# 対策
1. filesystemは`ext4`でインストールする
2. `daemon.json`ファイルは以下の通りにする

```text:/etc/docker/daemon.json
{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "log-driver": "json-file",
 "log-opts": {
   "max-size": "100m"
 },
 "storage-driver": "ovrlay"
}
``` 
# 調査詳細
以下はセットアップの内容、エラー内容を記載します。
同様の現象であれば、上記の対策を実施してみてはいかがでしょうか。

## dockerインストール
[kubernete v1.15 で使うdockerをインストール方法](https://qiita.com/ButtonPJ/items/e19df03e6467d11d1ac2)を参考にしていただきたい。

## jsonファイルの作成
```text:/etc/docker/daemon.json
{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "log-driver": "json-file",
 "log-opts": {
   "max-size": "100m"
 },
 "storage-driver": "ovrlay2"
}
``` 
## フォルダの作成＆サービス再起動
```
mkdir -p /etc/systemd/system/docker.service.d

systemctl daemon-reload
systemctl restart docker
```

## dockerサービスを再起動するとエラーが？？？
```
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
```
「systemctl status docker.service」と「journalctl -xe」を見ろと言われるのとりあえず見てみる

```
$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 土 2019-11-16 09:56:02 JST; 2min 28s ago
     Docs: https://docs.docker.com
  Process: 1684 ExecStart=/usr/bin/dockerd (code=exited, status=1/FAILURE)
 Main PID: 1684 (code=exited, status=1/FAILURE)

11月 16 09:56:02 kbmaster systemd[1]: docker.service: main process exited, code=exi...URE
11月 16 09:56:02 kbmaster systemd[1]: Failed to start Docker Application Container ...ne.
11月 16 09:56:02 kbmaster systemd[1]: Unit docker.service entered failed state.
11月 16 09:56:02 kbmaster systemd[1]: docker.service failed.
11月 16 09:56:02 kbmaster systemd[1]: docker.service holdoff time over, scheduling ...rt.
11月 16 09:56:02 kbmaster systemd[1]: Stopped Docker Application Container Engine.
11月 16 09:56:02 kbmaster systemd[1]: start request repeated too quickly for docker...ice
11月 16 09:56:02 kbmaster systemd[1]: Failed to start Docker Application Container ...ne.
11月 16 09:56:02 kbmaster systemd[1]: Unit docker.service entered failed state.
11月 16 09:56:02 kbmaster systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
```
はぁ、よくわからない。。。
なので、"journalctl -xe"を実行してみる

```
$ sudo journalctl -xe
11月 16 09:56:02 kbmaster systemd[1]: docker.service failed.
11月 16 09:58:31 kbmaster sudo[1704]: futamata : TTY=pts/0 ; PWD=/home/futamata ; USER=roo
11月 16 09:58:31 kbmaster sudo[1704]: pam_unix(sudo:session): session opened for user root
11月 16 09:58:31 kbmaster sudo[1704]: pam_unix(sudo:session): session closed for user root
11月 16 10:01:01 kbmaster systemd[1]: Created slice User Slice of root.
-- Subject: Unit user-0.slice has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit user-0.slice has finished starting up.
-- 
-- The start-up result is done.
11月 16 10:01:01 kbmaster systemd[1]: Started Session 2 of user root.
-- Subject: Unit session-2.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit session-2.scope has finished starting up.
-- 
-- The start-up result is done.
11月 16 10:01:01 kbmaster CROND[1707]: (root) CMD (run-parts /etc/cron.hourly)
11月 16 10:01:01 kbmaster run-parts(/etc/cron.hourly)[1710]: starting 0anacron
11月 16 10:01:01 kbmaster anacron[1716]: Anacron started on 2019-11-16
11月 16 10:01:01 kbmaster run-parts(/etc/cron.hourly)[1718]: finished 0anacron
11月 16 10:01:01 kbmaster anacron[1716]: Will run job `cron.daily' in 41 min.
11月 16 10:01:01 kbmaster anacron[1716]: Will run job `cron.weekly' in 61 min.
11月 16 10:01:01 kbmaster anacron[1716]: Jobs will be executed sequentially
11月 16 10:01:47 kbmaster sudo[1721]: futamata : TTY=pts/0 ; PWD=/home/futamata ; USER=roo
11月 16 10:01:47 kbmaster sudo[1721]: pam_unix(sudo:session): session opened for user root
lines 2162-2190/2190 (END)
```
これまた、全くよくわからない。
daemon.jsonをrenameすると起動することからjsonファイルの記載が正しくないことが判明した。

# 参考

- http://docs.docker.jp/engine/userguide/storagedriver/selectadriver.html