Docker CEをRocky Linux 9にインストールする!

Rocky Linux 9にDocker CEをインストールします。

システムをアップデートする!

システムを最新化していない場合は、システムをアップデートします。

# dnf update -y

システムを再起動する!

システムをアップデートした場合は、カーネルのアップデートなど、アップデートを確実に反映するためシステムを再起動します。

# reboot

Docker CEのリポジトリを登録する!

Docker CEのリポジトリを登録します。

# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo -y

インストール済みのDockerを削除する!

インストール済みのDockerを削除します。

# dnf remove docker docker-common docker-selinux docker-engine -y

Docker CEの前提パッケージをインストールする!

Docker CEの前提パッケージをインストールします。

# dnf install device-mapper-persistent-data lvm2 -y

Docker CEをインストールする!

Docker CEをインストールします。

# dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
Last metadata expiration check: 0:00:10 ago on Wed 02 Nov 2022 07:11:15 AM JST.
Error: 
 Problem: problem with installed package buildah-1:1.26.2-1.el9_0.x86_64
  - package buildah-1:1.26.2-1.el9_0.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
  - package containerd.io-1.6.9-3.1.el9.x86_64 conflicts with runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - package containerd.io-1.6.9-3.1.el9.x86_64 obsoletes runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - cannot install the best candidate for the job
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

エラーが出力されます。メッセージに従い、「--allowerasing」のオプションを使用して再度インストールを試みます。

# dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing -y
Last metadata expiration check: 0:00:21 ago on Wed 02 Nov 2022 07:11:15 AM JST.
Dependencies resolved.
========================================================================================================================
 Package                              Architecture      Version                       Repository                   Size
========================================================================================================================
Installing:
 containerd.io                        x86_64            1.6.9-3.1.el9                 docker-ce-stable             32 M
     replacing  runc.x86_64 4:1.1.3-2.el9_0
 docker-ce                            x86_64            3:20.10.21-3.el9              docker-ce-stable             21 M
 docker-ce-cli                        x86_64            1:20.10.21-3.el9              docker-ce-stable             29 M
 docker-compose-plugin                x86_64            2.12.2-3.el9                  docker-ce-stable             10 M
Installing dependencies:
 container-selinux                    noarch            3:2.188.0-1.el9_0             appstream                    47 k
 docker-ce-rootless-extras            x86_64            20.10.21-3.el9                docker-ce-stable            3.7 M
 flatpak-selinux                      noarch            1.12.5-2.el9_0                appstream                    22 k
 rpm-plugin-selinux                   x86_64            4.16.1.3-12.el9_0             baseos                       19 k
 selinux-policy                       noarch            34.1.29-1.el9_0.2             baseos                       55 k
 selinux-policy-targeted              noarch            34.1.29-1.el9_0.2             baseos                      6.3 M
Installing weak dependencies:
 docker-scan-plugin                   x86_64            0.21.0-3.el9                  docker-ce-stable            3.8 M
Removing dependent packages:
 buildah                              x86_64            1:1.26.2-1.el9_0              @appstream                   29 M

Transaction Summary
========================================================================================================================
Install  11 Packages
Remove    1 Package
...
Installed:
  container-selinux-3:2.188.0-1.el9_0.noarch                     containerd.io-1.6.9-3.1.el9.x86_64                     
  docker-ce-3:20.10.21-3.el9.x86_64                              docker-ce-cli-1:20.10.21-3.el9.x86_64                  
  docker-ce-rootless-extras-20.10.21-3.el9.x86_64                docker-compose-plugin-2.12.2-3.el9.x86_64              
  docker-scan-plugin-0.21.0-3.el9.x86_64                         flatpak-selinux-1.12.5-2.el9_0.noarch                  
  rpm-plugin-selinux-4.16.1.3-12.el9_0.x86_64                    selinux-policy-34.1.29-1.el9_0.2.noarch                
  selinux-policy-targeted-34.1.29-1.el9_0.2.noarch              
Removed:
  buildah-1:1.26.2-1.el9_0.x86_64                                                                                       

Complete!

Docker CEをsystemdに登録する!

Docker CEをsystemdに登録して、自動起動するように設定します。

# systemctl enable docker --now
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2022-11-02 07:15:24 JST; 18s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 5059 (dockerd)
      Tasks: 8
     Memory: 24.2M
        CPU: 182ms
     CGroup: /system.slice/docker.service
             └─5059 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Docker CEをバージョンを確認する!

インストールの確認を含めて、Docker CEをバージョンを確認します。

# docker version
Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:02:16 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 18:00:01 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.9
  GitCommit:        1c90a442489720eec95342e1789ee8a5e1b9536f
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

sudoなしでDockerを使用できるようにする!

sudoなしでDockerを使用できるようにするためには、Dockerを使用するユーザをdockerグループに追加します。

$ sudo gpasswd -a usradmin docker

おわりに

Rocky Linux 9にDocker CEをインストールする場合、インストール時にオプションを付けてインストールする必要があります。

参考情報

関連記事

関連書籍(Amazon)