前回の記事では「Dockerとは何か?」という概念を解説しました。
今回はいよいよ実際に手を動かしていきます。仮想マシン上のRocky Linux 9にDockerをインストールする手順を、公式ドキュメント(Install Docker Engine on RHEL)に沿ってステップバイステップで解説します。
「コマンドを打ったことがない…」という方でも迷わないよう、ハマりやすいポイントやSELinuxとの関係もあわせて解説します。
- 仮想マシンにRocky Linux 9を用意する準備
- 公式RHELリポジトリを使ったDockerのインストール手順
- インストール後の動作確認と初期設定
- SELinuxが有効な環境でDockerを正しく使う方法
- よくあるエラーとその対処法
事前準備|環境を確認しよう
今回の構成イメージ
| 項目 | 内容 |
|---|---|
| ホストOS | Windows 10 / 11(またはMac) |
| 仮想化ソフト | VirtualBox(無料)または VMware |
| ゲストOS | Rocky Linux 9(x86_64) |
| メモリ | 2GB以上(4GB推奨) |
| ディスク | 20GB以上 |
Rocky LinuxはRHEL(Red Hat Enterprise Linux)と完全互換のOSSディストリビューションです。
企業の本番サーバーで採用されることが多く、実務に近い環境でDockerを学べます。
公式DockerドキュメントにはRHEL向けのインストール手順が用意されており、Rocky Linuxでもそのままの手順が使えます。
Rocky Linux 9のISOダウンロード
まだインストールしていない方は、公式サイトからISOイメージを入手してください。

ステップ1|古いバージョン・競合パッケージを削除する
Dockerをインストールする前に、競合する可能性のあるパッケージを事前に削除します。
公式ドキュメントでもインストール前の必須手順として案内されています。
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runcRocky Linux 9にはデフォルトでpodmanとruncがインストールされています。
これらはDockerと競合するため削除が必要です。
何もインストールされていない場合は「No packages marked for removal」と表示されますが、そのまま次へ進んでください。
ステップ2|Dockerの公式リポジトリを追加する
dnf-plugins-coreをインストールする
リポジトリを管理するためのツールをインストールします。
sudo dnf -y install dnf-plugins-coreDockerのRHEL公式リポジトリを登録する
公式ドキュメント(RHEL向け)に記載されているリポジトリURLを使います。
以前はCentOS互換リポジトリ(centos/docker-ce.repo)を使う方法が一般的でしたが、現在は公式がRHEL専用リポジトリ(rhel/docker-ce.repo)を提供しており、Rocky Linux 9でもこちらを使うことが推奨されています。
実行後、以下のように表示されれば成功です。
Adding repo from: https://download.docker.com/linux/rhel/docker-ce.repoステップ3|Docker Engineをインストールする
以下のコマンドで、Docker Engine・CLI・containerd・Composeプラグインをまとめてインストールします。
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin途中でGPGキーの確認が求められます。表示された内容を確認し、yを入力して進んでください。
インストールするパッケージの意味
| パッケージ名 | 役割 |
|---|---|
docker-ce | Docker本体(Community Edition) |
docker-ce-cli | dockerコマンドを使うためのCLIツール |
containerd.io | コンテナの実行基盤(ランタイム) |
docker-buildx-plugin | マルチアーキテクチャのイメージビルドプラグイン |
docker-compose-plugin | 複数コンテナを管理するComposeコマンドのプラグイン |
ステップ4|Dockerサービスを起動・自動起動設定する
インストール直後はDockerは起動していません。
起動と自動起動の設定を一度に行うには、--nowオプションが便利です。
sudo systemctl enable --now dockersystemctl enable --nowは「自動起動の有効化」と「今すぐ起動」を1コマンドで同時に実行できます。enableとstartを別々に打つ必要がなく、公式ドキュメントでも推奨されている書き方です。
起動状態を確認する
sudo systemctl status dockerActive: active (running)と表示されれば成功です。
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Active: active (running) since ...ステップ5|hello-worldコンテナで動作確認する
sudo docker run hello-world初回はDocker Hubからイメージをダウンロードするため少し時間がかかります。
以下のメッセージが表示されればインストール成功です!
Hello from Docker!
This message shows that your installation is working correctly.「DockerクライアントがDockerデーモンへ接続 → Docker Hubからイメージを取得 → コンテナを起動 → 結果を表示」という一連の流れが正常に動いています。
第1回で解説したDockerの仕組みが、ここで実際に動作したわけです。
ステップ5|sudoなしでdockerコマンドを使えるようにする(推奨)
デフォルトではroot権限が必要です。一般ユーザーをdockerグループに追加することで、sudoなしで操作できるようになります。
# 現在のユーザーをdockerグループに追加する
sudo usermod -aG docker $USER
# グループの変更を即時反映する
newgrp dockernewgrp dockerで即時反映できますが、新しいターミナルを開いたときに問題が再発する場合は、一度ログアウト→ログインし直してください。
SELinuxとDockerの関係を理解しよう
Rocky Linux 9はデフォルトでSELinux(Security-Enhanced Linux)がEnforcingモードで動いています。
これはセキュリティ上とても重要な機能ですが、Dockerと組み合わせるときにいくつかの注意点があります。
SELinuxの状態を確認する
まず現在のSELinuxの状態を確認しましょう。
getenforce「Dockerがうまく動かない」という理由でSELinuxを無効化してしまう例が多く見られますが、これは絶対にやめてください。
SELinuxはコンテナの侵害からホストOSを守る重要な防壁です。後述の正しい方法で対処できます。
書き方の例
# ❌ SELinuxが有効な環境でこの書き方はエラーになる場合がある
docker run -v /data/app:/app nginx
# ✅ :z を付けて共有ラベルを適用する(複数コンテナからアクセスする場合)
docker run -v /data/app:/app:z nginx
# ✅ :Z を付けてプライベートラベルを適用する(このコンテナ専用)
docker run -v /data/app:/app:Z nginx迷ったら:z(小文字)から試してみましょう。Docker Composeで複数のサービスが同じボリュームを使う場合は:zが安全です。単一コンテナ専用のデータなら:Zでより厳格に管理できます。
まとめ
今回の手順をおさらいします。
| Step | 操作内容 |
|---|---|
| Step 1 | 古いDockerパッケージ・Podman・runcを削除 |
| Step 2 | Docker公式RHELリポジトリを追加 |
| Step 3 | Docker Engineをインストール |
| Step 4 | systemctl enable --now dockerで起動・自動起動設定 |
| Step 5 | hello-worldで動作確認 |
| Step 6 | 一般ユーザーをdockerグループに追加 |
| 補足 | SELinux(Enforcing)との共存方法(:z/:Z)を理解する |
Rocky Linux 9の本番環境に近い設定でDockerが動く状態になりました。SELinuxを無効化せずに使う方法を理解しておくことは、実務でも非常に重要なポイントです。

コメント