【第2回】DockerをRocky Linuxにインストールする手順

前回の記事では「Dockerとは何か?」という概念を解説しました。

今回はいよいよ実際に手を動かしていきます。仮想マシン上のRocky Linux 9にDockerをインストールする手順を、公式ドキュメント(Install Docker Engine on RHEL)に沿ってステップバイステップで解説します。

「コマンドを打ったことがない…」という方でも迷わないよう、ハマりやすいポイントやSELinuxとの関係もあわせて解説します。

📌この記事でわかること
  • 仮想マシンにRocky Linux 9を用意する準備
  • 公式RHELリポジトリを使ったDockerのインストール手順
  • インストール後の動作確認と初期設定
  • SELinuxが有効な環境でDockerを正しく使う方法
  • よくあるエラーとその対処法

目次

事前準備|環境を確認しよう

今回の構成イメージ

項目内容
ホストOSWindows 10 / 11(またはMac)
仮想化ソフトVirtualBox(無料)または VMware
ゲストOSRocky Linux 9(x86_64)
メモリ2GB以上(4GB推奨)
ディスク20GB以上
Rocky Linuxを選ぶ理由

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 \
  runc
Podman / runc の削除について

Rocky Linux 9にはデフォルトでpodmanruncがインストールされています。

これらはDockerと競合するため削除が必要です。

何もインストールされていない場合は「No packages marked for removal」と表示されますが、そのまま次へ進んでください。

ステップ2|Dockerの公式リポジトリを追加する

dnf-plugins-coreをインストールする

リポジトリを管理するためのツールをインストールします。

sudo dnf -y install dnf-plugins-core

DockerのRHEL公式リポジトリを登録する

公式ドキュメント(RHEL向け)に記載されているリポジトリURLを使います。

RHELリポジトリとCentOSリポジトリの違い

以前は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-ceDocker本体(Community Edition)
docker-ce-clidockerコマンドを使うためのCLIツール
containerd.ioコンテナの実行基盤(ランタイム)
docker-buildx-pluginマルチアーキテクチャのイメージビルドプラグイン
docker-compose-plugin複数コンテナを管理するComposeコマンドのプラグイン

ステップ4|Dockerサービスを起動・自動起動設定する

インストール直後はDockerは起動していません。

起動と自動起動の設定を一度に行うには、--nowオプションが便利です。

sudo systemctl enable --now docker
 –nowオプションとは

systemctl enable --nowは「自動起動の有効化」と「今すぐ起動」を1コマンドで同時に実行できます。enablestartを別々に打つ必要がなく、公式ドキュメントでも推奨されている書き方です。

起動状態を確認する

sudo systemctl status docker

Active: 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 docker
 完全に反映するには再ログインが確実

newgrp dockerで即時反映できますが、新しいターミナルを開いたときに問題が再発する場合は、一度ログアウト→ログインし直してください。

SELinuxとDockerの関係を理解しよう

Rocky Linux 9はデフォルトでSELinux(Security-Enhanced Linux)がEnforcingモードで動いています

これはセキュリティ上とても重要な機能ですが、Dockerと組み合わせるときにいくつかの注意点があります。

SELinuxの状態を確認する

まず現在のSELinuxの状態を確認しましょう。

getenforce
 SELinuxをDisabledにしてはいけない

「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 と :Z の選び方まとめ

迷ったら:z(小文字)から試してみましょう。Docker Composeで複数のサービスが同じボリュームを使う場合は:zが安全です。単一コンテナ専用のデータなら:Zでより厳格に管理できます。

まとめ

今回の手順をおさらいします。

Step操作内容
Step 1古いDockerパッケージ・Podman・runcを削除
Step 2Docker公式RHELリポジトリを追加
Step 3Docker Engineをインストール
Step 4systemctl enable --now dockerで起動・自動起動設定
Step 5hello-worldで動作確認
Step 6一般ユーザーをdockerグループに追加
補足SELinux(Enforcing)との共存方法(:z/:Z)を理解する

Rocky Linux 9の本番環境に近い設定でDockerが動く状態になりました。SELinuxを無効化せずに使う方法を理解しておくことは、実務でも非常に重要なポイントです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次