====== 17 WSL2 + Docker ======
WSLとは、平たく言うとWindows内でLinuxを実行できる仕組み
===== WSL有効化 =====
PowerShellを管理者権限で実行し下記を実行後、PC再起動
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
===== Install WSL 2 kernel =====
[[https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel|Download the Linux kernel update package]]
===== CentOS8ダウンロード =====
[[https://github.com/wsldl-pg/CentWSL/releases]]
===== インポート =====
md %userprofile%\AppData\Local\Packages\CentOS8
wsl --import CentOS8 "%userprofile%\AppData\Local\Packages\CentOS8" "C:\Users\s-matsui\Downloads\CentOS8\rootfs.tar" --version 2
==== 確認 ====
C:\Users\s-matsui>wsl -l -v
NAME STATE VERSION
* CentOS8 Stopped 2
==== 指定したディストリビューションを実行 ====
C:\Users\s-matsui>wsl -e CentOS8
[root@ThinkPad-X1-Nano s-matsui]#
デフォルトのディストリビューションへ入るにはwslだけでOK
C:\Users\s-matsui>wsl
[root@ThinkPad-X1-Nano s-matsui]#
===== Docker Desktop for Windows =====
Docker Desktop for Windowsをインストール
[[https://hub.docker.com/editions/community/docker-ce-desktop-windows]]
==== コンテナ作成 ====
下記でさっそくコンテナが作成され、http://localhostでアクセスできるようになる。
docker run -d -p 80:80 docker/getting-started
===== Docker Desktopのボリューム確認方法 =====
==== ①Dcoker Hostに接続し確認 ====
Docker Hostからは、/var/lib/docker/volumesで見える
>> docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh
>> ls /var/lib/docker/volumes/
==== ②wslホストへ接続し確認 ====
ネットワークからwslホストへ接続し確認
WSLホストからは、**「\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\」**で見える。
C:\Users\s-matsui>dir \\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
ドライブ \\wsl$\docker-desktop-data のボリューム ラベルがありません。
ボリューム シリアル番号は 0000-0000 です
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes のディレクトリ
2021/03/15 17:32 hello
2021/03/15 12:42 0 backingFsBlockDev
2021/03/15 09:16 da2abe59d6d0b92ff2b005301d0118f79aae0bf4619c05012e8171a69e8ab337
2021/03/15 17:32 ..
2021/03/15 17:32 32,768 metadata.db
2021/03/15 17:32 .
2021/03/15 13:21 laravel-test_mysql-data
2 個のファイル 32,768 バイト
5 個のディレクトリ 251,857,551,360 バイトの空き領域
===== WSL2 vmmem問題 =====
vmmmemが大量のメモリを食ってしまっている問題。
設定ファイルを用意
[wsl2]
memory=6G
swap=0
WSLの再起動
C:\Users\s-matsui>wsl --shutdown
==== 最小値 ====
私の環境では「Ubuntu 20.04.3 LTS」を利用しているが、memory=1Gだけでは起動しませんでした。 \\
下記のようにswap=1GBも入れると起動できました。 \\
OS内のメモリ使用量にもよりますが、私の環境では1Gとちょっと必要そうです。
[wsl2]
memory=1G
swap=1G
{{tag>Windows Docker WSL}}