メインコンテンツまでスキップ

WSL2の上のDocker環境を構築する(2022/04)

· 約3分
moritalous
  • Windows 10 Pro 21H2

WSL2のインストール

公式ドキュメント

https://docs.microsoft.com/ja-jp/windows/wsl/install

管理者権限のPowerShell
wsl --install -d Ubuntu-20.04
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu 20.04 LTS
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

結構時間がかかります。終わったら再起動します。

再起動後、自動でプロンプトが表示されると思います。 手動で起動する場合はスタートメニューに登録されているUbuntu 20.04 on Windowsを選択します。

image.png

ユーザーを作成します。

Enter new UNIX username: [ユーザー名を入力]
New password: [パスワードを入力]
Retype new password: [パスワードをもう一度入力]

image.png

WSLがバージョン2であることを確認します。新しくコマンドプロンプトを起動して

コマンドプロンプト
wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04 Running 2

VERSIONが1の場合はWSL1で起動なので、以下を参考にWSL2で起動するように設定してください。

https://docs.microsoft.com/ja-jp/windows/wsl/basic-commands

Dockerのインストール

WSL2に戻って以下を実行

WSL2
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

途中で以下のコメントが出ますが、気にせず待ちます。

WSL DETECTED: We recommend using Docker Desktop for Windows.
Please get Docker Desktop from https://www.docker.com/products/docker-desktop

You may press Ctrl+C now to abort this script.
+ sleep 20

インストールが終わったら、sudoなしでDokcerが起動できるように設定します。

WSL2
sudo usermod -aG docker $USER
  • WSL2起動時にDockerが自動起動するように設定

~/.bashrcの末尾に以下を追記

sudo /etc/init.d/docker start
  • sudoなしでDocker起動
WSL2
sudo visudo

nanoが起動するので末尾に以下を追加

%docker ALL=(ALL)  NOPASSWD: /etc/init.d/docker

編集後、Ctrl+XYEnterで保存します。

設定がうまくできると、WSL2起動と同時にDockerが立ち上がり、sudoなしでdockerコマンドが使えると思います。

image.png

  • ついでにDocker Composeもインストールしましょう
WSL2
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
WSL2
docker compose version
Docker Compose version v2.4.1

ほとんどこちらの記事のまんまです。すいません。

https://qiita.com/ohtsuka1317/items/617a865b8a9d4fb67989