Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【WSL2 Ubuntu】Dockerを使う2つの方法|Docker DesktopとDocker Engine直接導入の違い

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

WSL2のUbuntuでDockerを使う方法は、大きく分けて2つあります。

1. WindowsにDocker DesktopをインストールしてWSL2と連携する
2. Ubuntu内にDocker Engineを直接インストールする

どちらでもDockerは利用できますが、手軽さを重視するなら Docker Desktop+WSL2連携 が分かりやすい方法です。

スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

方法1:Docker Desktop+WSL2連携

Windows側にDocker Desktopをインストールし、UbuntuからDockerを利用する方法です。

構成は次のようになります。

Windows
└─ Docker Desktop
      ↓ WSL Integration
   WSL2 Ubuntu
      ↓
   dockerコマンド

Docker Engineの実行や管理はDocker Desktop側が担当するため、Ubuntu内でDockerデーモンを個別に管理する必要がありません。

Docker Desktop側の設定

Docker Desktopをインストールしたら、

Settings
↓
General
↓
Use the WSL 2 based engine

を有効にします。

次に、

Settings
↓
Resources
↓
WSL Integration

を開き、利用するUbuntuを有効にします。

例えば、

Ubuntu    ON

とします。

設定後、Ubuntuを開いて確認します。

docker --version

さらに、

docker run hello-world

が正常に動けば、WSL2 UbuntuからDockerを利用できています。

Docker Desktopを使うメリット

この方式では、

Dockerデーモンの起動
停止
アップデート
WSL2との連携
コンテナの確認

などをDocker Desktop側で管理できます。

特にWindows+WSL2環境では、

Ubuntu側にDocker Engineを個別インストールしなくてもdockerコマンドを利用できる

のが大きなメリットです。

Dockerに慣れていない場合や、WindowsとWSL2を併用している場合はこちらの方が扱いやすいでしょう。

方法2:Ubuntu内へDocker Engineを直接導入

Docker Desktopを使わず、WSL2 UbuntuへDocker Engineを直接インストールすることもできます。

構成は、

Windows
└─ WSL2 Ubuntu
      ├─ Docker Engine
      ├─ Docker CLI
      └─ containerd

となります。

こちらではUbuntu自身がDockerデーモンを動かします。

導入には、主に次の作業が必要です。

Docker公式APTリポジトリを登録
↓
docker-ce等をインストール
↓
systemdを有効化
↓
WSL2を再起動
↓
Dockerサービスを起動

Docker Desktopを使わず、Linux環境として独立してDockerを管理したい場合はこちらが向いています。

systemdが重要

Ubuntu内へDocker Engineを直接導入する場合、Dockerサービスの管理にsystemdを使用する構成が一般的です。

確認するには、

systemctl status

または、

systemctl status docker

を使用します。

systemdが利用できない状態では、

Docker Engineはインストールした
↓
しかしDockerデーモンが起動していない
↓
dockerコマンドで接続できない

という状態になることがあります。

そのため、直接導入方式ではDockerのインストールだけでなく、サービスの起動管理まで考える必要があります。

どちらを選べばよい?

Windows上のWSL2 UbuntuでDockerを使うだけなら、まずは、

Docker Desktop+WSL2 Integration

がおすすめです。

比較すると次のようになります。

項目 Docker Desktop Ubuntuへ直接導入
導入 簡単 やや手間
Dockerデーモン管理 Docker Desktop Ubuntu
systemd設定 基本的に意識しなくてよい 必要になる場合あり
Windowsとの連携 強い 基本的にUbuntu側で完結
GUI管理 あり 基本なし
向いている用途 Windows+WSL2 Linuxとして独立運用

今回の環境ではDocker Desktopがおすすめ

例えば現在のWSL2 Ubuntuで、

docker --version

を実行して、

command not found

となる場合、まだDockerコマンドが利用できる状態ではありません。

さらにsystemdも正常に利用できていない環境なら、Ubuntu内へDocker Engineを直接導入すると、

Dockerインストール
+
systemd設定
+
Dockerサービス管理

まで必要になります。

このような場合は、Windows側へDocker DesktopをインストールしてWSL Integrationを有効化する方が簡単です。

注意:両方入れる必要はない

Docker Desktopを使う場合、通常はUbuntu内へ別途Docker Engineをインストールする必要はありません。

つまり、

Windows
Docker Desktop
   ↓
WSL Integration
   ↓
Ubuntuからdockerを利用

で十分です。

Docker Desktopを使っているのに、さらにUbuntuへDocker Engineをインストールすると、Dockerデーモンが複数存在して「どちらへ接続しているのか」が分かりにくくなることがあります。

最初はどちらか一方に統一した方が管理しやすいでしょう。

まとめ

WSL2 UbuntuでDockerを利用する方法は、

Docker Desktop+WSL2連携

と、

UbuntuへDocker Engineを直接導入

の2通りがあります。

Windows+WSL2環境で手軽に使いたい場合は、

Docker DesktopをWindowsへインストールし、WSL IntegrationでUbuntuを有効にする方法がおすすめです。

一方、Docker Desktopを使わずUbuntu側だけでDockerを完結させたい場合は、Docker Engineを直接導入します。

その場合は、Dockerのインストールだけでなく、systemdやDockerデーモンの起動管理も必要になる点に注意が必要です。

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