CentOS Stream 9にDocker Engineを入れた際の作業ログ

### 導入先

```
[shuntaro@localhost ~]$ cat /etc/centos-release 
CentOS Stream release 9
```

### 手順：基本的にこれに沿って進める

https://docs.docker.com/engine/install/centos/

### 以下作業メモ

#### 1. インストール

```
[shuntaro@localhost ~]$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
一致した引数がありません: docker
一致した引数がありません: docker-client
一致した引数がありません: docker-client-latest
一致した引数がありません: docker-common
一致した引数がありません: docker-latest
一致した引数がありません: docker-latest-logrotate
一致した引数がありません: docker-logrotate
一致した引数がありません: docker-engine
削除対象のパッケージはありません。
依存関係が解決しました。
行うべきことはありません。
完了しました!
```

```
[shuntaro@localhost ~]$ sudo yum install -y yum-utils
メタデータの期限切れの最終確認: 0:03:50 時間前の 2022年10月23日 21時59分53秒 に実施しました。
依存関係が解決しました。
============================================================================================================================================
 パッケージ                        アーキテクチャー               バージョン                           リポジトリー                   サイズ
============================================================================================================================================
インストール:
 yum-utils                         noarch                         4.1.0-3.el9                          baseos                          41 k

トランザクションの概要
============================================================================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 41 k
インストール後のサイズ: 23 k
パッケージのダウンロード:
yum-utils-4.1.0-3.el9.noarch.rpm                                                                            909 kB/s |  41 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                         43 kB/s |  41 kB     00:00     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                    1/1 
  インストール中   : yum-utils-4.1.0-3.el9.noarch                                                                                       1/1 
  scriptletの実行中: yum-utils-4.1.0-3.el9.noarch                                                                                       1/1 
  検証             : yum-utils-4.1.0-3.el9.noarch                                                                                       1/1 

インストール済み:
  yum-utils-4.1.0-3.el9.noarch                                                                                                              

完了しました!
```

```
[shuntaro@localhost ~]$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
repo の追加: https://download.docker.com/linux/centos/docker-ce.repo
```

```
[shuntaro@localhost ~]$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Docker CE Stable - x86_64                                                                                    33 kB/s | 3.5 kB     00:00    
エラー: 
 問題: インストール済パッケージの問題 buildah-1:1.27.0-2.el9.x86_64
  - パッケージ buildah-1:1.27.0-2.el9.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ buildah-1:1.25.1-1.el9.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ buildah-1:1.26.1-3.el9.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ buildah-1:1.26.1-4.el9.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ buildah-1:1.26.4-1.el9.x86_64 には runc >= 1.0.0-26 が必要ですが、どのプロバイダーからもインストールできません
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.1.4-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.1.4-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.0.3-5.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.0.3-5.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.1.2-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.1.2-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.1.3-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.1.3-1.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc と競合しています。これは runc-4:1.1.3-2.el9.x86_64 により提供されます
  - パッケージ containerd.io-1.6.8-3.1.el9.x86_64 は runc を廃止しました。これは runc-4:1.1.3-2.el9.x86_64 により提供されます
  - ジョブの最良アップデート候補をインストールできません
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
```

:::note warn
ほぼインストールしたての環境なので --allowerasing しても
問題ないだろうと考えてそれで進める(進めた)
:::

```
[shuntaro@localhost ~]$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing
メタデータの期限切れの最終確認: 0:02:42 時間前の 2022年10月23日 22時05分14秒 に実施しました。
依存関係が解決しました。
============================================================================================================================================
 パッケージ                                アーキテクチャー       バージョン                         リポジトリー                     サイズ
============================================================================================================================================
インストール:
 containerd.io                             x86_64                 1.6.8-3.1.el9                      docker-ce-stable                  32 M
     置き換え  runc.x86_64 4:1.1.4-1.el9
 docker-ce                                 x86_64                 3:20.10.20-3.el9                   docker-ce-stable                  21 M
 docker-ce-cli                             x86_64                 1:20.10.20-3.el9                   docker-ce-stable                  29 M
 docker-compose-plugin                     x86_64                 2.12.0-3.el9                       docker-ce-stable                  10 M
依存関係のインストール:
 docker-ce-rootless-extras                 x86_64                 20.10.20-3.el9                     docker-ce-stable                 3.7 M
弱い依存関係のインストール:
 docker-scan-plugin                        x86_64                 0.17.0-3.el9                       docker-ce-stable                 3.6 M
依存関係パッケージの削除:
 buildah                                   x86_64                 1:1.27.0-2.el9                     @AppStream                        26 M

トランザクションの概要
============================================================================================================================================
インストール  6 パッケージ
削除          1 パッケージ

ダウンロードサイズの合計: 99 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/6): docker-ce-20.10.20-3.el9.x86_64.rpm                                                                   10 MB/s |  21 MB     00:02    
(2/6): containerd.io-1.6.8-3.1.el9.x86_64.rpm                                                                14 MB/s |  32 MB     00:02    
(3/6): docker-ce-rootless-extras-20.10.20-3.el9.x86_64.rpm                                                  4.8 MB/s | 3.7 MB     00:00    
(4/6): docker-ce-cli-20.10.20-3.el9.x86_64.rpm                                                              9.3 MB/s |  29 MB     00:03    
(5/6): docker-scan-plugin-0.17.0-3.el9.x86_64.rpm                                                           5.1 MB/s | 3.6 MB     00:00    
(6/6): docker-compose-plugin-2.12.0-3.el9.x86_64.rpm                                                        7.8 MB/s |  10 MB     00:01    
--------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                         27 MB/s |  99 MB     00:03     
Docker CE Stable - x86_64                                                                                    11 kB/s | 1.6 kB     00:00    
GPG 鍵 0x621E9F35 をインポート中:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                    1/1 
  インストール中   : docker-scan-plugin-0.17.0-3.el9.x86_64                                                                             1/8 
  scriptletの実行中: docker-scan-plugin-0.17.0-3.el9.x86_64                                                                             1/8 
  インストール中   : docker-ce-cli-1:20.10.20-3.el9.x86_64                                                                              2/8 
  scriptletの実行中: docker-ce-cli-1:20.10.20-3.el9.x86_64                                                                              2/8 
  インストール中   : containerd.io-1.6.8-3.1.el9.x86_64                                                                                 3/8 
  scriptletの実行中: containerd.io-1.6.8-3.1.el9.x86_64                                                                                 3/8 
  インストール中   : docker-ce-rootless-extras-20.10.20-3.el9.x86_64                                                                    4/8 
  scriptletの実行中: docker-ce-rootless-extras-20.10.20-3.el9.x86_64                                                                    4/8 
  インストール中   : docker-ce-3:20.10.20-3.el9.x86_64                                                                                  5/8 
  scriptletの実行中: docker-ce-3:20.10.20-3.el9.x86_64                                                                                  5/8 
  インストール中   : docker-compose-plugin-2.12.0-3.el9.x86_64                                                                          6/8 
  scriptletの実行中: docker-compose-plugin-2.12.0-3.el9.x86_64                                                                          6/8 
  削除             : buildah-1:1.27.0-2.el9.x86_64                                                                                      7/8 
  廃止             : runc-4:1.1.4-1.el9.x86_64                                                                                          8/8 
  scriptletの実行中: runc-4:1.1.4-1.el9.x86_64                                                                                          8/8 
  検証             : containerd.io-1.6.8-3.1.el9.x86_64                                                                                 1/8 
  検証             : runc-4:1.1.4-1.el9.x86_64                                                                                          2/8 
  検証             : docker-ce-3:20.10.20-3.el9.x86_64                                                                                  3/8 
  検証             : docker-ce-cli-1:20.10.20-3.el9.x86_64                                                                              4/8 
  検証             : docker-ce-rootless-extras-20.10.20-3.el9.x86_64                                                                    5/8 
  検証             : docker-compose-plugin-2.12.0-3.el9.x86_64                                                                          6/8 
  検証             : docker-scan-plugin-0.17.0-3.el9.x86_64                                                                             7/8 
  検証             : buildah-1:1.27.0-2.el9.x86_64                                                                                      8/8 

インストール済み:
  containerd.io-1.6.8-3.1.el9.x86_64                 docker-ce-3:20.10.20-3.el9.x86_64            docker-ce-cli-1:20.10.20-3.el9.x86_64    
  docker-ce-rootless-extras-20.10.20-3.el9.x86_64    docker-compose-plugin-2.12.0-3.el9.x86_64    docker-scan-plugin-0.17.0-3.el9.x86_64   
削除しました:
  buildah-1:1.27.0-2.el9.x86_64                                                                                                             

完了しました!
```

#### 2. インストール後の初回起動

```
[shuntaro@localhost ~]$ sudo systemctl start docker
[shuntaro@localhost ~]$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:18a657d0cc1c7d0678a3fbea8b7eb4918bba25968d3e1b0adebfa71caddbc346
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

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/
```

#### 3. systemctl 的に起動するように設定

```
 [shuntaro@localhost ~]$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
     Active: active (running) since Sun 2022-10-23 22:09:23 JST; 7min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 44189 (dockerd)
      Tasks: 9
     Memory: 30.9M
        CPU: 412ms
     CGroup: /system.slice/docker.service
             └─44189 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
(以下略)
```

```
[shuntaro@localhost ~]$ systemctl is-enabled docker
disabled
[shuntaro@localhost ~]$ systemctl enable docker
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ====
Authentication is required to manage system service or unit files.
Authenticating as: shuntaro
Password: 
==== AUTHENTICATION COMPLETE ====
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ====
Authentication is required to reload the systemd state.
Authenticating as: shuntaro
[shuntaro@localhost ~]$ systemctl is-enabled docker
enabled
```