1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】WSL2にRocky Linuxを入れてDocker環境を構築する

1
Posted at

はじめに

プライベート用にラップトップを購入したので、環境構築をしました。

WSL2やDockerの構築記事はすでにたくさんあるので、今さら感はありますが、自分の備忘録として残しておきます。仕事でRHEL系のLinuxサーバーを扱っているので、UbuntuではなくRocky Linuxを選びました。同じような環境の方の参考になれば幸いです。


この記事でできること

項目 内容
所要時間 約30分
環境 Windows 10/11 + WSL2
対象 WSL2初心者・RHEL系エンジニア

環境

  • Windows 11
  • WSL2
  • Rocky Linux 9.7 (Blue Onyx)
  • Docker Engine 29.2.1

手順

1. WSL2のインストール

PowerShellを管理者として起動し、以下を実行します。

wsl --install

インストール後、PCを再起動します。

再起動後、WSL2がデフォルトになっているか確認します。

wsl --set-default-version 2

WSLのバージョンが古いと後続の手順でエラーになる場合があります。以下のコマンドで最新版に更新しておくと安心です。

wsl --update

2. Rocky LinuxのWSL用イメージをダウンロード

Rocky LinuxはMicrosoft Storeにないため、公式サイトからWSL専用イメージをダウンロードします。

まず保存先フォルダを作成します。

mkdir C:\WSL\Rocky9

次にWSL専用イメージ(.wsl形式)をダウンロードします。

Invoke-WebRequest -Uri https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-WSL-Base.latest.x86_64.wsl -OutFile C:\WSL\Rocky9\Rocky9.wsl

PowerShellでは curlInvoke-WebRequest のエイリアスになっているため、Linuxの curl と同じオプションは使えません。

回避策1: Invoke-WebRequest を使う(上記のコマンド)

回避策2: curl.exe と拡張子をつけて実行する

curl.exe -L -o C:\WSL\Rocky9\Rocky9.wsl https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-WSL-Base.latest.x86_64.wsl

curl.exe とすることでPowerShellのエイリアスではなく、Windows標準搭載のcurlバイナリが直接呼び出されるため、Linuxと同じオプションがそのまま使えます。


3. WSL2にインポート

ダウンロードしたイメージをWSL2にインストールします。

wsl --install --from-file C:\WSL\Rocky9\Rocky9.wsl --name Rocky9

起動するとユーザー名の入力を求められます。任意のユーザー名を設定してください。

Please create a default user account.
Enter new UNIX username: yourname

ユーザーは自動的に wheel グループに追加されるため、sudo が使えます。


4. パスワードの設定

sudo passwd yourname

5. Rocky Linuxのバージョン確認

cat /etc/rocky-release
Rocky Linux release 9.7 (Blue Onyx)

6. Rocky9をデフォルトに設定

PowerShellで以下を実行します。

wsl --set-default Rocky9

これでWindows Terminalを開くとRocky9が自動的に起動します。


7. WSL2のリソース設定(任意)

デフォルトではWSL2がWindowsのリソースを多く消費することがあります。WSL Settingsアプリで制限をかけることをおすすめします。

スタートメニューで WSL Settings と検索して開き、Resources からメモリ・CPU・Swapを設定します。

筆者の環境(16GB RAM・10コア)では以下の設定にしました。

項目 設定値
Memory 6GB
Processors 4
Swap 3GB

設定後はWSLを再起動して反映させます。

wsl --shutdown
wsl -d Rocky9

8. Docker Engineのインストール

Rocky Linux上でDockerをインストールします。

なぜDocker Desktopではないのか?
Docker Desktopは従業員250人以上・年間売上1000万ドル以上の企業では有料です。Docker Engine(CUIのみ)は無料で使えます。

# パッケージ更新
sudo dnf update -y

# Docker公式リポジトリを追加
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

# Docker Engineをインストール
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# sudoなしでdockerを使えるようにする
sudo usermod -aG docker $USER

usermod を実行しただけでは現在のセッションに反映されません。一度 exit でWSLを抜けて再度入るか、以下のコマンドで即時反映できます。

newgrp docker

9. Dockerの自動起動設定

WSL2起動時にDockerが自動で立ち上がるよう設定します。

systemd=true を有効化することで、systemctl enable docker の設定が機能しDockerが自動起動します。

# systemdを有効化
sudo tee /etc/wsl.conf <<EOF
[boot]
systemd=true
EOF

# Dockerの自動起動を有効化
sudo systemctl enable docker

設定後、WSLを再起動します。

wsl --shutdown

10. 動作確認

Rocky9を起動してDockerが動いているか確認します。

docker run hello-world

以下のように表示されれば成功です。

Hello from Docker!
This message shows that your installation appears to be working correctly.

よくあるハマりどころ

.tar.xz形式はそのままインポートできない

公式サイトにはコンテナ用の .tar.xz イメージもありますが、WSL2に直接インポートしようとするとエラーになります。

インポートされたファイルは有効な Linux ディストリビューションではありません。
エラー コード: Wsl/Service/RegisterDistro/WSL_E_NOT_A_LINUX_DISTRO

WSL専用の .wsl 形式のイメージを使う方が手軽です。公式ドキュメントにも記載があります。

curlコマンドがPowerShellで動かない

PowerShellでは curlInvoke-WebRequest のエイリアスになっているため、Linuxの curl と同じオプションは使えません。Invoke-WebRequest を使うか、curl.exe と拡張子をつけて実行しましょう。


まとめ

WSL2にRocky Linux 9を導入し、Docker Engineをインストールする手順を紹介しました。

仕事でRHEL系サーバーを扱うエンジニアにとって、Ubuntu環境よりも実務に近い練習ができます。

次回はこの環境にOllama + Open WebUIを使ったローカルAI基盤を構築する手順を紹介します。


参考


この記事はClaude(Anthropic)を活用して作成しました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?