DockerLinux

AlmaLinux 10 / 9にDockerとDocker Composeをインストールする方法

スポンサーラベル
AlmaLinux 10 / 9 の Docker 導入手順の新旧比較 Docker

当サイトはアフィリエイト広告を利用しています。

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

AlmaLinux 10 / 9 の Docker 導入手順の新旧比較

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 検証した環境

項目内容
OSAlmaLinux 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 / 9AlmaLinux 10 / 9
補助パッケージyum-utilsdnf-plugins-core(yum-utils も今は同じもの)
リポジトリCentOS 用RHEL 用(CentOS 用も EL10 向けがある)
ComposeGitHub から単体を取得docker-compose-plugin で一緒に入る
Compose のコマンドdocker-composedocker 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 のテンプレートが用意されているかと、料金体系・解約条件を確認してください。

あわせて読みたい

コメント

タイトルとURLをコピーしました