CentOSとUbuntuにDockerをインストールする方法

# CentOSにインストール
環境 : CentOS Linux release 7.8.2003 (Core)

## 1. 準備する
- 参考
    - [Install Docker Engine on CentOS | Docker Documentation](https://docs.docker.com/engine/install/centos/)
    - [yum-config-manager でリポジトリの有効/無効を切り替える - らくがきちょう](https://sig9.hatenablog.com/entry/2016/11/20/120000)

```bash
# 1. yumを更新する
$ sudo yum -y update
Loaded plugins: fastestmirror
Determining fastest mirrors
...省略...
Complete!

# 2. yum-config-managerユーティリティーのあるyum-utilsパッケージをインストールする
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
...省略...
Dependency Installed:
  device-mapper-event.x86_64 7:1.02.164-7.el7_8.1    device-mapper-event-libs.x86_64 7:1.02.164-7.el7_8.1    libaio.x86_64 0:0.3.109-13.el7
  lvm2-libs.x86_64 7:2.02.186-7.el7_8.1

Complete!

# 3. yum-config-managerでリポジトリを登録する
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
```

## 2. Docker Engineをインストールする
参考 : [systemctl コマンド - Qiita](https://qiita.com/sinsengumi/items/24d726ec6c761fc75cc9)

```bash
# 1. Dockerエンジンをインストールする
$ sudo yum install docker-ce docker-ce-cli containerd.io
...省略...
Installed:
  containerd.io.x86_64 0:1.2.13-3.1.el7            docker-ce.x86_64 3:19.03.8-3.el7            docker-ce-cli.x86_64 1:19.03.8-3.el7

Dependency Installed:
  container-selinux.noarch 2:2.119.1-1.c57a6f9.el7

Complete!

# 2. Dockerの自動起動を有効化する
$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

# 3. バージョンを見てみる
$ docker version
Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
...省略...
```

## 3. Docker Composeをインストールする
参考 : [Install Docker Compose | Docker Documentation](https://docs.docker.com/compose/install/)

```bash
# 1. Docker Composeをインストールする
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   638  100   638    0     0   4946      0 --:--:-- --:--:-- --:--:--  4984
100 16.7M  100 16.7M    0     0  4870k      0  0:00:03  0:00:03 --:--:-- 5724k

# 2. 実行権限を付与する
$ sudo chmod +x /usr/local/bin/docker-compose

# 3. バージョンを見てみる
$ docker-compose -v
docker-compose version 1.25.5, build 8a1c60f6
```

## 4. Docker実行用のユーザーを作成する

```bash
# 1. Docker実行用のユーザーを作成する
$ sudo useradd dockeruser

# 2. パスワードを設定する
$ sudo passwd dockeruser
Changing password for user dockeruser.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

# 3. 作成したユーザーをdockerグループに追加する
$ sudo usermod -aG docker dockeruser

# 4. 作成したユーザーをwheelグループに追加する(sudoできるようにする)
$ sudo usermod -aG wheel dockeruser

# 5. 再起動する
$ sudo reboot
```

# Ubuntuにインストール
環境 : Ubuntu 20.04 LTS x86_64

## 1. 準備する
参考 : [Install Docker Engine on Ubuntu | Docker Documentation](https://docs.docker.com/engine/install/ubuntu/)

```bash
# 1. 一応dockerがインストールされていないか確認する
$ sudo dpkg -l docker
dpkg-query: no packages found matching docker

# 2. aptを更新する
$ sudo apt-get update
Get:1 http://us-east-2.ec2.archive.ubuntu.com/ubuntu focal InRelease [265 kB]
...省略...
Reading package lists... Done

# 3. aptがHTTPS経由でリポジトリを使用できるようにパッケージをインストールする
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Reading package lists... Done
...省略...
done.

# 4. Dockerの公式GPGキーを追加する
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

# 5. 安定版リポジトリを設定する(lsb_release -csはUbuntuディストリビューションを返す)
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
...省略...
Get:4 https://download.docker.com/linux/ubuntu focal InRelease [36.2 kB]
Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:6 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [3056 B]
Fetched 39.2 kB in 0s (86.7 kB/s)
Reading package lists... Done
```

## 2. Docker Engineをインストールする
```bash
# 1. aptを更新する
$ sudo apt-get -y install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
...省略...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

# 2. Docker Engineとcontainerdの最新バージョンをインストールする
$ sudo apt-get -y install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
...省略...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

# 3. hello-worldイメージを実行して、Docker Engineがインストールさたことを確認する
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
...省略...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...省略...

# 4. バージョンを確認しておく
$ docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
...省略...

# 5. 自動起動が設定されていることを確認する
$ systemctl is-enabled docker
enabled
```

## 3. Docker Composeをインストールする
参考 : [Install Docker Compose | Docker Documentation](https://docs.docker.com/compose/install/)

```bash
# 1. GitHubのComposeリポジトからDocker Composeをダウンロードする(違うバージョンにする場合はhttps://github.com/docker/compose/releasesでバージョンを選んで「1.26.0」を置き換える)
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   638  100   638    0     0  10459      0 --:--:-- --:--:-- --:--:-- 10459
100 11.6M  100 11.6M    0     0  26.3M      0 --:--:-- --:--:-- --:--:-- 26.3M

# 2. 実行権限を付与する
$ sudo chmod +x /usr/local/bin/docker-compose

# 3. バージョンを確認しておく
$ docker-compose -v
docker-compose version 1.26.0, build d4451659
```

## 4. dockerグループにユーザーを追加する
```bash
# 1. docker実行用のグループの存在を確認する
$ cat /etc/group | grep docker
docker:x:998:

# 2. ユーザーを追加する
$ sudo usermod -aG docker ubuntu

# 3. 追加されたことを確認する
$ cat /etc/group | grep docker
docker:x:998:ubuntu

# 4. 再起動する
$ sudo reboot
```