ポイント
- WSL2にアップデートする
ステップ
毎回WSL2にするのを忘れてはまる。
手順
あとで書く
WSL インストール
管理者としてPowerShellを起動して下記でWSLをインストール
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Ubuntuのダウンロード
curl.exe -L https://aka.ms/wslubuntu2204 -o ~\Downloads\Ubuntu.appx
パッケージにUbuntu追加
Add-AppxPackage ~\Downloads\Ubuntu.appx
wsl --list --online
wsl --install -d ディストロ名
WSL2 移行
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
もしかしたら下記も必要かも
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下記 Linux kernel update package のダウンロード&インストール https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
ディストロ名の確認
wsl -l -v
WSL2化
wsl --set-version ディストロ名 2
カーネルアップデート
wsl --shutdown wsl --update
Docker インストール
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
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-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Dockerデーモン起動していなかったら
sudo service docker start sudo docker run hello-world
ユーザ権限でも実行したい場合
sudo usermod -aG docker `whoami`
シェル再起動
Proxy関連
環境変数 (~/.bashrc にいれておく)
export HTTP_PROXY=http://user:pass@proxyserver:8080 export HTTPS_PROXY=http://user:pass@proxyserver:8080
/etc/apt/apt.conf
Acquire::http::Proxy "http://user:pass@proxyserver:8080"; Acquire::https::Proxy "http://user:pass@proxyserver:8080";
Dockerデーモン /etc/default/docker
export no_proxy='export no_proxy=127.0.0.1,localhost,xxx.xxx.xxx.xxx' export NO_PROXY="${no_proxy}" export http_proxy='http://user:pass@proxyserver:8080/' export HTTP_PROXY="${http_proxy}" export https_proxy='http://user:pass@proxyserver:8080/' export HTTPS_PROXY="${https_proxy}"
Dockerクライアント ~/.docker/config.json
{ "proxies": { "default": { "httpProxy": "http://user:pass@proxyserver:8080", "httpsProxy": "http://user:pass@proxyserver:8080", "noProxy": "127.0.0.0/8,172.16.0.0/16" } } }
参考
- https://aka.ms/wsl2kernel
- https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- https://docs.docker.com/engine/install/ubuntu/
- https://qiita.com/Gushi_maru/items/5ba23d997e32abc98620
- https://qiita.com/moriai/items/850ee91d60edc91e7b7e
- https://qiita.com/keith_campbell/items/a93b7c8d5540f9fa17e9
- https://qiita.com/TsuyoshiUshio@github/items/2530876fc81e8afd7c82
- https://qiita.com/obukoh/items/416c4cb1b88261bf3357
- https://kazuhira-r.hatenablog.com/entry/20160116/1452933387
- https://qiita.com/Riliumph/items/921e76444ea6ba145294