WSLとは、平たく言うとWindows内でLinuxを実行できる仕組み
PowerShellを管理者権限で実行し下記を実行後、PC再起動
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
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をインストール
https://hub.docker.com/editions/community/docker-ce-desktop-windows
下記でさっそくコンテナが作成され、http://localhostでアクセスできるようになる。
docker run -d -p 80:80 docker/getting-started
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$\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 <DIR> hello 2021/03/15 12:42 0 backingFsBlockDev 2021/03/15 09:16 <DIR> da2abe59d6d0b92ff2b005301d0118f79aae0bf4619c05012e8171a69e8ab337 2021/03/15 17:32 <DIR> .. 2021/03/15 17:32 32,768 metadata.db 2021/03/15 17:32 <DIR> . 2021/03/15 13:21 <DIR> laravel-test_mysql-data 2 個のファイル 32,768 バイト 5 個のディレクトリ 251,857,551,360 バイトの空き領域
vmmmemが大量のメモリを食ってしまっている問題。
設定ファイルを用意
%USERPROFILE%.wslconfig
[wsl2] memory=6G swap=0
WSLの再起動
C:\Users\s-matsui>wsl --shutdown
私の環境では「Ubuntu 20.04.3 LTS」を利用しているが、memory=1Gだけでは起動しませんでした。
下記のようにswap=1GBも入れると起動できました。
OS内のメモリ使用量にもよりますが、私の環境では1Gとちょっと必要そうです。
%USERPROFILE%.wslconfig
[wsl2] memory=1G swap=1G