🐳

RHEL8でdockerとdocker composeを使うようにする

に公開

はじめに

久しぶりにRHEL8でdockerを使うための設定をしました。
毎回忘れてしまうので、備忘録として残しておきたいと思います。
今回の作業は基本的にrootユーザーで実行していきます。
(dockerを一般ユーザーで起動したい場合はパーミッションなどの設定が必要だったと思うのですが、今回はしていません。)

RHEL OS確認

# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.10 (Ootpa)
#
# docker --help
-bash: docker: command not found
#

dockerインストール試行錯誤

dockerリポジトリ登録

# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
#
# dnf repolist
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
repo id                                                                         repo name
docker-ce-stable                                                                Docker CE Stable - x86_64
rhel-8-for-x86_64-appstream-rpms                                                Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms                                                   Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
#

Failed to set local, defaulting to C.UTF-8は日本語の言語パッケージがインストールされていないことが原因のようです。
対処方法は「日本語パッケージ対応」に記載しています。
(結論はdnf -y install langpacks-ja実行のみです。)

(失敗その1)dockerインストール

さっそく、インストールしようとしました失敗しました。
念のためにログを残しておきます。

# dnf -y install docker-ce
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                               100 kB/s | 4.5 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                  103 kB/s | 4.1 kB     00:00
エラー:
 問題: インストール済パッケージの問題 podman-4:4.9.4-19.module+el8.10.0+22744+7794713b.x86_64
  - package podman-1.4.2-6.module+el8.1.0+4830+f49150d7.x86_64 from rhel-8-for-x86_64-appstream-rpms requires runc, but none of the providers can be installed
  - package podman-1.4.2-5.module+el8.1.0+4240+893c1ab8.x86_64 from rhel-8-for-x86_64-appstream-rpms requires runc, but none of the providers can be installed
  - package podman-1.0.5-1.gitf604175.module+el8.0.0+4017+bbba319f.x86_64 from rhel-8-for-x86_64-appstream-rpms requires runc, but none of the providers can be installed
...

podman削除

競合するパッケージを削除してみます。
後ほどのコマンドオプションで競合するパッケージを置き換えるので、このコマンドは不要かもしれません。

# dnf -y remove podman
サブスクリプション管理リポジトリーを更新しています。
依存関係が解決しました。
========================================================================================================================================================================================
 パッケージ                          アーキテクチャー          バージョン                                                    リポジトリー                                         サイズ
========================================================================================================================================================================================
削除中:
 podman                              x86_64                    4:4.9.4-19.module+el8.10.0+22744+7794713b                     @rhel-8-for-x86_64-appstream-rpms                     53 M
未使用の依存関係の削除:
 conmon                              x86_64                                                                                        
...                                                          
完了しました!
#

(失敗その2)dockerインストール

# dnf -y install docker-ce
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                 93 kB/s | 4.5 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                    83 kB/s | 4.1 kB     00:00
エラー:
 問題: インストール済パッケージの問題 buildah-2:1.33.12-1.module+el8.10.0+22744+7794713b.x86_64
  - package buildah-2:1.33.12-1.module+el8.10.0+22744+7794713b.x86_64 from @System requires runc >= 1.0.0-26, but none of the providers can be installed
  - package buildah-2:1.33.12-1.module+el8.10.0+22931+799fd806.x86_64 from rhel-8-for-x86_64-appstream-rpms requires runc >= 1.0.0-26, but none of the providers can be installed
  - package buildah-2:1.33.10-1.module+el8.10.0+22397+e3c95ba6.x86_64 from rhel-8-for-x86_64-appstream-rpms requires runc >= 1.0.0-26, but none of the providers can be installed
...
  - package containerd.io-1.6.32-3.1.el8.x86_64 from docker-ce-stable obsoletes runc provided by runc-1:1.1.12-6.module+el8.10.0+22931+799fd806.x86_64 from rhel-8-for-x86_64-appstream-rpms
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
#

(成功)dockerインストール

# dnf --allowerasing -y install docker-ce
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                 89 kB/s | 4.5 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                    78 kB/s | 4.1 kB     00:00
依存関係が解決しました。 
...
完了しました!
#

(必要であれば)docker-composeインストール

# curl -L https://github.com/docker/compose/releases/download/2.35.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     9  100     9    0     0     64      0 --:--:-- --:--:-- --:--:--    63
# chmod +x /usr/local/bin/docker-compose

versionの確認

# docker -v
Docker version 26.1.3, build b72abbb
# docker-compose --version
/usr/local/bin/docker-compose: line 1: Not: command not found
# docker compose version
Docker Compose version v2.27.0
#

docker.serviceの確認

# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://docs.docker.com
#
# systemctl enable --now docker
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 2025-04-30 18:59:51 PDT; 11s ago
     Docs: https://docs.docker.com
 Main PID: 39952 (dockerd)
    Tasks: 10
   Memory: 32.0M
   CGroup: /system.slice/docker.service
           └─39952 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

動作確認

試しにRedHat ubiイメージからコンテナを作成して入ってみます。

# docker run -it registry.access.redhat.com/ubi8/ubi
Unable to find image 'registry.access.redhat.com/ubi8/ubi:latest' locally
latest: Pulling from ubi8/ubi
bd762904af8b: Pull complete
Digest: sha256:244e9858f9d8a2792a3dceb850b4fa8fdbd67babebfde42587bfa919d5d1ecef
Status: Downloaded newer image for registry.access.redhat.com/ubi8/ubi:latest
[root@3c68795117aa /]

その他

日本語パッケージ対応

日本語パッケージがインストールされていない場合は下記のようにインストールできます。

# dnf -y install langpacks-ja
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Waiting for process with pid 4314 to finish.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                               106 kB/s | 4.5 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                   88 kB/s | 4.1 kB     00:00
Dependencies resolved.
...
Complete!
#

他に必要そうなモジュールのインストール

# dnf -y install docker-ce-cli containerd.io docker-compose-plugin
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                104 kB/s | 4.5 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                    80 kB/s | 4.1 kB     00:00
パッケージ docker-ce-cli-1:26.1.3-1.el8.x86_64 は既にインストールされています。
パッケージ containerd.io-1.6.32-3.1.el8.x86_64 は既にインストールされています。
パッケージ docker-compose-plugin-2.27.0-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
#

参考

docker-ceインストール:

docker-composeインストール:

RHEL日本語パッケージ対応:

Discussion