🐳
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インストール:
- Docker Compose のインストール
- GitHub: docker/compose releases
- GitHub: docker/compose
- CentOS7にDocker CEとDocker Composeをインストールする
RHEL日本語パッケージ対応:
Discussion