WSL2+Ubuntu+Dockerでの環境整備
はじめに
探せばいくらでも出てくるトピックであるので、特段改めて書く必要性はないのだが、
自分の備忘録として、構築方法をまとめておこうと思う。
この記事では、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