Windows上で最も軽量かつ、本番環境(VPSなど)に近い形でDockerを利用するためのガイドです。Docker Desktopを使わず、WSL2内のUbuntuに直接Docker Engineを導入することで、リソース消費を抑え、より高度なカスタマイズを可能にします。(WSLでsystemdを入れるのは以前は大変でしたが、WSL2では簡単になりました)
0. 前提条件:WSL2とUbuntuの準備
本ガイドは、WindowsにWSL2とUbuntuがインストールされていることを前提としています。
まだの方(最短手順): 管理者権限のPowerShellで以下を実行し、PCを再起動してください。
wsl --install
wsl --update
# 例: Ubuntu の最新版をインストール
wsl --install -d ubuntu※ メモリ割り当て(.wslconfig)や、Dドライブへの移動など、より詳細な最適化設定については、こちらの【WSL2リファレンス】Ubuntuの最短構築・詳細設定・リソース制限まとめを参照してください。
1. Ubuntuパッケージの更新
まず、Ubuntuのターミナルを起動し、パッケージリストを最新の状態に更新します。
sudo apt update && sudo apt upgrade -y2. Docker公式リポジトリの追加
最新のDocker Engineを安全に取得するため、公式のリポジトリを登録します。
# 必要な依存パッケージの導入
sudo apt install -y ca-certificates curl gnupg
# Docker公式GPG鍵の追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリの登録
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt updateubuntu のターミナルで実行
Docker公式のUbuntuへのインストールページに、上記とほぼ同様のセットアップコードがあります。
Docker公式
Docker Engine → install → linux → ubuntu install
docs.docker.com3. Docker Engineのインストール
Docker本体と、プロジェクト管理に必須となる docker-compose-plugin をインストールします。
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin4. WSL2特有の設定(systemd・権限)
“3.Docker Engineのインストール”まではlinuxネイティブでの操作と同じですが、WSLではsystemdがデフォルトでOFFになっているので、これを有効に設定しておきます。
WSL2でDockerを「サーバー」として快適に動かすための重要な設定です。
systemdの有効化
WSL2の起動時にDockerサービスを自動開始させます。
sudo nano /etc/wsl.conf以下の内容を追記して保存(Ctrl+O -> Enter -> Ctrl+X)します。
[boot]
systemd=trueユーザー権限の追加
sudo なしでDockerコマンドを使えるようにします。
sudo usermod -aG docker $USERなぜ systemd を有効にするのか?
一言でいうと、「OS(Ubuntu)に、裏方仕事を自動でこなす『管理人』を雇うため」です。
通常のWSL2は開いたときだけ動く「作業場」のような作りですが、サーバー運用にはそれだけでは不十分です。
- 「毎回起動」の手間をゼロに 無効だと再起動のたびに手動コマンドが必要ですが、有効ならPC起動と同時にDockerを自動で立ち上げてくれます。
- 「落ちたら直す」自己修復 万が一エラーでプログラムが止まっても、管理人が検知して即座に再起動。24時間安定して動かすための必須機能です。
- 本番環境(VPS)への近道 さくらのVPSなど本物のサーバーではこれが標準です。systemdを有効にしておけば、そのまま移行することができる。
以前はWSLでsystemdを動かすのは大変でしたが、現在はwsl.conf一行で解決します。これによって、まるで本物のサーバーを扱っているような感覚でDockerを運用できるようになりました。
5. 設定の反映と動作確認
設定を反映させるため、一度WSL2を完全に終了させます。WindowsのPowerShellで以下を実行してください。
wsl --shutdown再度Ubuntuを起動し、動作確認を行います。
# サービスの状態確認
systemctl status docker
# テストコンテナの実行
docker run hello-world【重要】パフォーマンスに関する注意点
WSL2でDockerを扱う際、Windows側のフォルダ(/mnt/c/など)をマウントすると動作が極端に遅くなります。プロジェクトファイルやデータベースの保存先は、必ずUbuntu側のディレクトリ(/home/ユーザー名/以下)に配置してください。
次のステップ
これで、あらゆるDockerイメージを動かせる最強の土台が整いました。
この環境を使って、実際にセルフホストツールやゲームサーバーを構築・運用する手順については、以下の実践編ガイドへ進んでください。
関連記事
- dockerで立てる 完全ローカル知識共有サーバ SilverBullet環境構築:Ubuntu(サーバ)【Linux/Docker編】
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero