Windows 10 May 2020 Update(バージョン2004)がついにGAされて、待望のWSL2が使えるようになったので、さっそく入れてみたので、よかったところ、悪かったところなどのメモ。
今のところBSODやBT機器が使えないといった巷に出ている不具合は踏んでない。
WSL2の導入
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
にしたがって実行していくだけなので割愛。
wsl --set-version Ubuntu 2
が数分で終わります、って表示されてるのに1時間ぐらい終わらず、ちょっとあせった。
Xの利用方法が変わった
WSL1では、X410をはじめとするXserverを使うのに、
export DISPLAY=localhost:0.0
とやっていたが、それではXサーバが見つかならなくなってしまった。
仮想マシン方式になったため、WSLからはlocalhostでホストが見れなくなってしまったのが原因らしい。
https://x410.dev/cookbook/wsl/using-x410-with-wsl2/
上のX410の記事にあるとおり、
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
で解決。上記記事には確認コマンドも乗っていて、これでわかったIPアドレスに対してnetcatするとよいようだ。
nc -v 172.30.32.1 6000
実際、自分の環境もファイアウォールにブロックされていて、はじめ設定したのにXが見つからず、切り分けに便利だった。
Docker for Windwosが便利になった
以前から、Docker for WindowsがWSL2とうまくインテグレーションできることは聞いていたが、実際便利になりましたね。
すでに、Docker for Windowsを導入済であれば、Windows 10 May 2020 Update(バージョン2004)にバージョンアップ後の起動時に、「WSL2使えるけど変更する?」的なことを聞かれるので、それでおしまい。簡単。
今のところ見えてる良くなったところは以下の3点
- tcp://localhost:2375をexposeしなくてもWSLから使える
- WSL内のディレクトリもボリュームマウントできる
- WSLの一般ユーザでdockerコマンドが使える
最後は、純粋なLinuxなら、どうせ sudo docker
してるし、そこまで大きな良いポイントではないけれど、前半ふたつは良いですね。
これまで、https://qiita.com/gentaro/items/7dec88e663f59b472de6 にあるように、一旦ホスト側にもってきてから、docker run -v /c/path/to/data:data
みたいにしなくてはならず、補完も効かず不便だったので。 docker run -v `pwd`:data
だけでマウントできるの捗る。
TCP2375ポートを不用意にexposeしておくのも、やっぱり心配だったし。
ネットワーク系のコマンド類が実行できるようになった
tcpdumpとかWSL1では実行できないコマンドも使えるようになってます。
あとは、WSL1のころはPhantomJSとかも動かず、electronいじったときにつらかった覚えがありますが、最近electron触ってないので、そこはよくわからない。PhantomJSも終わっちゃったはずだし。。
まとめ
まだ使って数時間なので、他にも気付いたら追記していきます。