AlmaLinux に Docker を入れる手順は、10 になっても 9 とほとんど変わりません。変わったのは Docker Compose の入れ方で、今は公式リポジトリの docker-compose-plugin として Docker 本体と一緒に入ります。GitHub からバイナリを落として /usr/local/bin に置く手順は要りません。この記事では、AlmaLinux 10.2 と 9.8 で実際に入れて動かした手順と、途中で1か所だけつまずく点をまとめます。

1. 前提条件
- AlmaLinux 10 または 9 がインストールされている
- root 権限、または
sudoを使えるユーザーで作業する - インターネット(
download.docker.com)に出られる
AlmaLinux 8 でも同じリポジトリから入る見込みですが、本記事では検証していません。
AlmaLinux が動く環境が手元に無い場合は、VPS を1台借りるのが手軽です。共用のレンタルサーバーは root 権限が無いため、Docker は動きません。どちらを選べばよいかは共用レンタルサーバーとVPSはどう選び分けるかにまとめました。CentOS 7 から AlmaLinux 10 へ移る途中なら、CentOS 7 から AlmaLinux 10 への移行も参考になります。
1.1 検証した環境
| 項目 | 内容 |
|---|---|
| OS | AlmaLinux 10.2 / AlmaLinux 9.8(x86_64) |
| 入った版 | Docker 29.8.1 / Docker Compose v5.5.1 / Buildx 0.37.1 |
| 検証方法 | Docker Desktop 上の AlmaLinux コンテナ(特権モード)で実施 |
| 実施日 | 2026年9月 |
コンテナの中で検証したため、systemctl による起動と自動起動の設定は確認していません(dockerd を直接起動して代わりに確かめています)。パッケージの追加・インストール・コンテナの起動・Compose の動作は実測です。
2. 事前確認:podman-docker が入っていないか
AlmaLinux には Docker 互換の podman が用意されていて、podman-docker というパッケージを入れると docker コマンドで podman が動くようになります。この podman-docker が入っていると、Docker 本体のインストールが衝突で止まります。
まず docker コマンドの正体を確認します。
# docker コマンドがどのパッケージのものかを確認する
rpm -q podman-docker
docker --version
次のように podman のメッセージが返ったら、podman-docker が入っています。
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
podman version 5.8.2
この状態で Docker を入れようとすると、dnf が次のエラーで止まります。
Problem: problem with installed package podman-docker-7:5.8.2-9.el10_2.alma.1.noarch
- package podman-docker-7:5.8.2-9.el10_2.alma.1.noarch from @System conflicts with docker-ce provided by docker-ce-3:29.8.1-1.el10.x86_64 from docker-ce-stable
先に外してから進めます。
# podman の docker 互換パッケージを外す
sudo dnf remove -y podman-docker
今回の検証では、podman-docker と一緒に依存関係として入っていた podman 本体も外れました。なお、podman 本体だけが入っている状態なら衝突は起きませんでした(AlmaLinux 10.2 で確認)。podman を使い続けたい場合は、podman-docker だけを外せば両方を共存させられます。
3. Docker のインストール
3.1 リポジトリを追加する
dnf config-manager を使うために dnf-plugins-core を入れ、Docker 公式の RHEL 用リポジトリを追加します。AlmaLinux 10 の dnf はまだ dnf4(4.20)なので、書き方は 9 と同じです。
# config-manager サブコマンドを使えるようにする
sudo dnf install -y dnf-plugins-core
# Docker 公式リポジトリ(RHEL 用)を追加する
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
リポジトリの URL は $releasever で切り替わります。AlmaLinux 10.2 では releasever = 10、9.8 では 9 に展開され、どちらも Docker 側に対応するリポジトリがありました。
以前の手順で使っていた yum-utils と yum-config-manager、CentOS 用のリポジトリ(…/linux/centos/docker-ce.repo)も、AlmaLinux 10 でそのまま使えました。yum-utils は今は dnf-plugins-core の別名として入ります。
3.2 Docker 本体と Compose を入れる
# Docker Engine・CLI・containerd と、Buildx / Compose のプラグインをまとめて入れる
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
初回は GPG 鍵の取り込みがあります。-y を付けると自動で受け入れますが、指紋は Docker の公式ドキュメントに載っている値と一致するか確認しておくと安心です。
Importing GPG key 0x621E9F35:
(Userid の行は省略)
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
3.3 起動して自動起動を有効にする
# 起動と自動起動の有効化を1行で行う(本記事の検証環境では未確認)
sudo systemctl enable --now docker
3.4 動作確認
# バージョンを確認する
docker --version
# テスト用のコンテナを動かす
sudo docker run --rm hello-world
Docker version 29.8.1 と表示され、Hello from Docker! で始まるメッセージが出れば成功です。
4. Docker Compose は追加作業なしで使える
3.2 で docker-compose-plugin を入れているので、Compose はもう使えます。
# Compose のバージョンを確認する(docker と compose の間はスペース)
docker compose version
Docker Compose version v5.5.1
注意したいのは、ハイフン付きの docker-compose コマンドは入らないことです。以前の手順どおりに docker-compose --version と打つと「コマンドが見つからない」になります。古い手順書やスクリプトで docker-compose と書いている箇所は、docker compose に読み替えてください。
以前は GitHub から単体のバイナリを落として /usr/local/bin/docker-compose に置いていました。この方法で入れた Compose は dnf update で更新されないので、プラグイン版に移しておくほうが管理が楽です。
動作確認として、nginx を1つ立ててみます。
# 作業用のディレクトリで compose.yaml を作る
mkdir -p ~/compose-test && cd ~/compose-test
cat > compose.yaml <<'EOF'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
EOF
# 起動して、応答を確認して、片付ける(5章の設定をするまでは sudo が必要)
sudo docker compose up -d
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:8080/
sudo docker compose down
200 が返れば Compose も動いています。
5. sudo なしで docker を使う(任意)
インストール時に docker グループが作られます。作業ユーザーをこのグループに加えると、sudo を付けずに docker コマンドを使えます。
# 作業ユーザーを docker グループに追加する(反映には再ログインが必要)
sudo usermod -aG docker $USER
ログアウトして入り直したあと、docker ps がエラーにならなければ反映されています。ただし、Docker の公式ドキュメントにあるとおり、docker グループには root 相当の権限があります。共用のサーバーでは、誰を加えるかを絞ってください。
6. 以前の手順からの変更点
2025年1月に書いた版からの違いをまとめます。
| 項目 | 以前の手順 | 今の手順 |
|---|---|---|
| 対象 | AlmaLinux 8 / 9 | AlmaLinux 10 / 9 |
| 補助パッケージ | yum-utils | dnf-plugins-core(yum-utils も今は同じもの) |
| リポジトリ | CentOS 用 | RHEL 用(CentOS 用も EL10 向けがある) |
| Compose | GitHub から単体を取得 | docker-compose-plugin で一緒に入る |
| Compose のコマンド | docker-compose | docker compose |
| 事前確認 | なし | podman-docker が入っていないか |
7. まとめ
- AlmaLinux 10 でも 9 と同じ手順で Docker が入る。
dnfは dnf4 のまま - Compose は
docker-compose-pluginで一緒に入る。コマンドはdocker compose podman-dockerが入っていると衝突するので、先にdnf remove podman-docker
Docker が動けば、BookStack や phpIPAM のような社内ツールもコンテナで手軽に立てられます。まずは hello-world と Compose の確認までを済ませ、自分の環境で動く状態を作っておきましょう。
社内ツールを動かすサーバーの選び方
BookStack や Redmine のような社内ツールは、PHP とデータベースを自分で用意して動かします。そのためSSH で操作できる VPS が必要で、共用のレンタルサーバーでは構築できません。メモリはデータベースと同居する分を見て、2GB以上を目安にしてください。
まず試すだけなら、VPS を1台借りて動かしてみるのが手軽です。候補は次の2社です。
お名前.com レンタルサーバー(GMOインターネット)……VPSプランがあります。独自ドメインも同じ事業者でまとめたい場合はこちらです。
ConoHa VPS……Linux のほかに ConoHa for Windows Server も選べます。Windows で検証したい場合はこちらです。
契約前に、使いたい OS のテンプレートが用意されているかと、料金体系・解約条件を確認してください。


コメント