!!!参考 https://qiita.com/snaka/items/a8eee4cfc8f7d733e6ab https://www.atmarkit.co.jp/ait/articles/1904/05/news027.html https://www.atmarkit.co.jp/ait/articles/1806/28/news043.html https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120 https://blog.mohyo.net/2022/02/11591/ !!!初期設定 *BIOSでVT-xを有効にする *Linux用Windowsサブシステムと仮想マシンプラットフォームをインストール **Windowsの機能の有効化または無効化から以下をチェックしてOK *** Linux用Windowsサブシステム *** 仮想マシンプラットフォームをインストール * 場合によってはカーネルコンポーネントの更新が必要 ** https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package !!!ディレクトリビューションを手動でインストール 通常はMicrosoft Storeで利用したいディストリビューションをインストールする。 Microsoft Storeを使わない場合は、以下のURLからダウンロードする https://docs.microsoft.com/ja-jp/windows/wsl/install-manual PowerShell Add-AppxPackage Ubuntu-20.04.appx とか !!!ディストリビューションの設定 + localhost でWSLに接続できるようにする ++ c:\Users\<ユーザ名>\.wslconfig を作成して以下の内容を記載する +++ localhostForwarding=True +++ [wsl2] +++ memory=6GB +++ WSLのメモリの上限を設定できる。物理メモリの50%〜80%くらがおすすめ + localeの設定 ++ sudo apt -y install language-pack-ja ++ sudo update-locale LANG=ja_JP.UTF8 + timezoneの設定 ++ sudo dpkg-reconfigure tzdata + ssh serverの設定 ++ sudo apt install openssh-server ++ sudo ssh-keygen -A ++ sudo vim /etc/ssh/sshd_config +++ PasswordAuthentication yes に変更 + docker-ceの設定 ++ Add Docker's official GPG key: +++ sudo apt-get update +++ sudo apt-get install ca-certificates curl gnupg +++ sudo install -m 0755 -d /etc/apt/keyrings +++ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +++ sudo chmod a+r /etc/apt/keyrings/docker.gpg ++ Add the repository to Apt sources: +++ echo \ +++ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ +++ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ +++ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +++ sudo apt-get update ++ sudo apt install docker-ce docker-compose-plugin ++ sudo gpasswd -a ユーザ名 docker + 起動用bat ++ wsl -u root -- service ssh start ++ wsl -u root -- service docker start + git-prompt.sh ++ sudo mkdir /usr/share/git-core/contrib/completion/ ++ sudo curl -o /usr/share/git-core/contrib/completion/git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh + XServer等で画面転送する場合 !!もしGUIを使う場合 !x11のキーレイアウト もしレイアウトがおかしい場合は以下で変更できる。 setxkbmap -layout jp !!!wslconfig Windowsのホームディレクトリ直下に .wslconfig を作成するとwslのメモリ制限などの設定をすることができる !!メモリを制限する [wsl2] memory=8GB !!WSLが確保したメモリを自動的に開放する [experimental] autoMemoryReclaim=dropcache 指定できる値は *gradual:アイドル時に段階的に開放していく *dropcache:未使用分を一括で開放する *disabled:自動メモリ解放をしない !!自動ディスクスペースクリーンアップ [experimental] sparseVhd=true でディスクの未使用領域を開放する。 エクスプローラでファイルのプロパティで確認すると、ディスク上のサイズが小さくなる。 既存のディスクイメージには効かないので、既存のディスクには以下のコマンドすることで有効になる wsl.exe --manage <ディストリビューション名> --set-sparse !!!WSLgをdockerで使う dockerの設定に以下を指定することでWSLのdockerでwslgが使える environment: - DISPLAY=$DISPLAY - WAYLAND_DISPLAY=$WAYLAND_DISPLAY - XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR - PULSE_SERVER=$PULSE_SERVER volumes: - /tmp/.X11-unix:/tmp/.X11-unix - /mnt/wslg:/mnt/wslg !!!Windows上のサービス WSLのためのサービスは以下のもの LxssManager(WSLServiceに変わった) WSLService !!!デフォルトユーザの変更 wslを起動したときのデフォルトユーザを変更する方法 !!方法1 wslの仮想マシンに以下のファイルを作成する /etc/wsl.conf [user] default=user-name 仮想マシンを落落とす wsl -t 仮想マシン名 !!方法2 仮想マシンが一つだけの場合 PowerShellで以下を実行する ubuntu config --default-user xxxx これをすることで以下のレジストリが書き換わる HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{distro-id}\DefaultUid !!!VPN環境で通信ができない場合 !!SSL証明書の問題の場合 [[SASE環境でdockerを使う場合の証明書問題]] !!一部のサイトに通信できない場合 ホストのVPN経由のみ通信できる場合は、ホストにproxyを立ててWSL、dockerコンテナからそのproxyを経由させることで通信できる。 [[WindowsでProxyサーバを立てる]] でproxyを立てて、WSLで以下を実行する。 export http_proxy=http://$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):8081 export https_proxy=${http_proxy} また各コンテナはdocker-compose.yml, dockerfileでproxyの設定を行う docker-compose.yml build: context: . dockerfile: ./environment/php-apache/Dockerfile args: - http_proxy=${http_proxy} - https_proxy=${https_proxy} dockerfile ARG http_proxy ARG https_proxy ENV http_proxy ${http_proxy} ENV https_proxy ${https_proxy} !!!以下自分用メモ sudo apt update sudo apt -y install language-pack-ja sudo update-locale LANG=ja_JP.UTF8 sudo dpkg-reconfigure tzdata sudo apt install openssh-server sudo ssh-keygen -A curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce docker-compose sudo gpasswd -a user docker sudo vim /etc/wsl.conf sudo vim /etc/ssh/sshd_config ※パスワード認証許可 sudo apt install tmux sudo apt install tig git sudo apt install meld sudo apt install make mkdir temp cd temp cp /mnt/c/data/temp/Download/Linux.zip ./ sudo apt install unzip unzip Linux.zip cp -rT Linux ~/ cd ls vim ~/.tmux.conf cd bin chmod +x * sudo apt install peco sudo apt install xclip sudo apt install fonts-vlgothic sudo apt install fonts-ricty-diminished sudo apt install gnome-icon-theme sudo apt install gnome-shell !!systemd 個人的にはsystemdは不要なので止めて良い vim /etc/wsl.conf systemd=true はコメントアウト !!docker dockerに関してはオフィシャルの方法を使う https://docs.docker.com/engine/install/ubuntu/ # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update {{category2 OS,Windows}} {{category2 ツール,WSL}}