====== 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}}