😎

WSL2+Ubuntu+Dockerでの環境整備

2024/08/31に公開

はじめに

探せばいくらでも出てくるトピックであるので、特段改めて書く必要性はないのだが、
自分の備忘録として、構築方法をまとめておこうと思う。

この記事では、Windows10上でWSL2を使ってUbuntuのインストールとDockerを導入し、
環境を整備する方法をまとめる。

初めての投稿なので雑なところは大目に見てください。

筆者環境

  • Windows 10 Home 22H2

WSL2のセットアップ

※すでにwslを入れた後に書いているので、初めて入れる場合はうまくいかないところがあるかもしれない。
その時は参考記事を見て解決してください。

参考記事

WSL2 + Ubuntu インストール

Powershellを開いて、以下のコマンドで可能です。
Ubuntu入れるまでやってくれる。

wsl --install -d Ubuntu
インストール中: Ubuntu
Ubuntu がインストールされました。

インストール後、自動でUbuntuが起動され、usernameとpasswordの設定を促される。
任意の値を入力して、Ubuntuの起動

  • この手順では、ユーザ名をtokとしています。
Enter new UNIX username: tok
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

操作について

exitでpowershell側に戻ることができます。

tok@xxx-xxxxx:~$ exit
logout
この操作を正しく終了しました。

wsl -l -vでインストールしたディストリビューションを確認できます。

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

wsl -d UbuntuでStoppedのディストリビューションを起動できます。

> wsl -d Ubuntu
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

tok@xxx-xxxxx:/mnt/f/src/xxx/$

wsl -t UbuntuでRuuningのディストリビューションを停止できます。

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

> wsl -t Ubuntu
この操作を正しく終了しました。

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

Ubuntu上でのDocker整備

参考記事

Docker Engineインストール

Ubuntuを起動します。

wsl -d Ubuntu

docker engineインストール用のshを取得して、実行

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

WSL環境で実行した場合、Docker Desktop for Windowsの使用を勧められますが
20秒待ったらインストールが始まるので無視します。

$ 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

非ルートユーザでdockerコマンドを有効化する

権限がないとdockerコマンドが使えない。
毎回sudoというのも面倒なので、ここで設定を入れておく。

以下のコマンド実行

sudo usermod -aG docker $USER

設定反映のため、一度logoutして再login

exit
wsl -d Ubuntu

dockerコマンドが動作することを確認

docker run hello-world

以下のメッセージが表示されれば完了。

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

必要なければhello-worldは削除しておきましょう。

  • コンテナの削除
$ docker ps -a
$ docker rm {CONTAINER ID}
  • イメージの削除
$ docker images
$ docker rmi {IMAGE ID}

スナップショット作成

ここまで作成した環境のスナップショットを作成しておくことで、
Dockerインストールまで設定した環境を即座に複製して作ることができる。

参考記事

スナップショット作成

wsl --export <ディストリビューション> <ファイル名>で作成できます。

wsl --export Ubuntu ubuntu_docker_installed.tar

スナップショットからディストリビューションの作成

wsl --import <ディストリビューション> <インストール先> <ファイル名>で作成できます。

> wsl --import ubuntu02 ubuntu02 .\ubuntu_docker_installed.tar
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。

> wsl -l -v
  NAME        STATE           VERSION
* Ubuntu      Stopped         2
  ubuntu02    Stopped         2

作成したディストリビューションの起動

wsl -d ubuntu02

デフォルトユーザの変更

インポート後はデフォルトのログインユーザがrootになるらしい。
よって、デフォルトユーザを変更します。

/etc/wsl.confにデフォルトユーザの指定を追加します。

vi /etc/wsl.conf
[boot]
systemd=true
[user]
default=tok

追加完了後、logout
ディストリビューションの再起動をします。

$ exit

> wsl -t ubuntu02
この操作を正しく終了しました。
> wsl -d ubuntu02

tok@xxx-xxxxx$

作成したディストリビューションの削除

以下のコマンドで作成したディストリビューションを削除できます。

> wsl --unregister Ubuntu
> wsl -l -v
  NAME        STATE           VERSION
* ubuntu02    Stopped         2

余談: Ubuntu以外を使いたいとき

以下のコマンドでインストール可能なディストリビューションが表示されます。

> wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

試しにkali-linuxをインストール

> wsl --install -d kali-linux
インストール中: Kali Linux Rolling
Kali Linux Rolling がインストールされました。
Kali Linux Rolling を起動しています...

おわりに

WSL2でのUbuntuとDockerの環境構築についてまとめました。
たまにやると、何が必要だったっけ…となるので、改めてまとめておけば役に立つかなぁと。

誰かの参考になれば幸いです。

Discussion