スクレイピング今までWSL1を使っていて、WSL2が安定してきたら、そのうちWSL2を使ってみようかと考えていたのですが、今回必要に迫られてWSL2に移行しました。Serverの設定について、徒然なるままに書こうと思います。Server)でpuppeteerを動かしていたのですが、Chromiumでエラーが出て動かなくなりました。SIGABRT調べたところ、明確な解は得られなかったのですが、どうもWSL1だとChromiumのウィンドウ表示には対応しきれないようでした...。同じプログラムを、UbuntuをインストールしたPCで実行すると問題なく動いたので、ますますWSL1が怪しく、WSL2に移行すれば動くんじゃないかと、思い切って移行してみました。下記の記事を参考にしました。2:WSL2に設定のたったこれだけで、WSL1がWSL2に変更されました。実行時間はかかりますが、想像以上に簡単でした。1で、WSL2からWSL1に戻すこともできます。下記の記事を参考にしました。https://qiita.com/ryoi084/items/0dff11134592d0bb895cPowerShellでipconfigを実行すると、WSLという新しいIPアドレスが追加されていて、それがWSL2の仮想マシンのIPアドレスになっています。.:WSL1はWindowsの一部なので、IPアドレスはWindowsと同じで、WSL1のDISPLAY環境変数に指定するIPアドレスはlocalhostでよかったのですが、WSL2は上記の仮想マシンのIPアドレスにする必要があります。仮想マシンのIPアドレスは起動時に決まるので、ベタ書きではなく、下記の方法で動的にセットします。server)を使ってウィンドウ表示ができるようになります。configuration」で設定ファイルが保存できるので、次回からは設定ファイルをダブルクリックしてVcXsrvを起動するようにします。Desktopをインストールして、WSL1から使っていました。DesktopをWSL2に対応するのは、下記の記事を参考にしました。Desktopは、Hyper-VでDockerデーモンを実行するVMを立ち上げて、WSL1からそのVMにアクセスする形になっていました。Desktopが、以前のVMを削除してしまうので、Dockerでvolumeを使っていた場合、そのバックアップは移行の前に行っておく必要があります。DesktopをWSL2に移行する手順は下記のように簡単でした。WSL2のDockerをアンインストールして、再度Dockerをインストール。Desktopをアップデート。聞かれますが、後から設定可能なので適当に回答。DesktopがWSL2対応になります。distro」にチェックを入れて、どのWSL2のディストリビューションからDockerにアクセスするかのチェックを入れます。Desktopにアクセスできるようになります。WSL2はどこに作られるのか?WSL2はHyper-VのVMかと思ったのですが、Hyper-Vマネージャーを見ても、それらしきVMが見当たりません。前述の通り、PowerShellでipconfigをすると、WSL2のIPアドレスが出てくるので、どこかにWSL2は存在してはいるのですが...。WSL2は、Hyper-Vを利用しつつ、従来のHyper-VのVMとは別に、WSL2として独立して存在しているんですね。-vとすると、WSL2のディストリビューション一覧が見れるのですが、その中にdocker-desktopが出てきます。DesktopのDockerデーモンは、WSL2のディストリビューションの1つとして起動してるんですね。WSL2のUbuntu上で動いてるのかと思ってました。INTEGRATION]ということなんですね。DesktopのDockerデーモンが立ち上がります。互換性のために従来の選択肢も用意されているようです。WSL2のUbuntuでDockerデーモンを起動するWSL2はれっきとしたLinuxなので、それだけでもDockerデーモンが動きそう。実際試すとちゃんと動きました。NAMESしかも、Ubuntuを一度閉じて、再度開いても、Dockerデーモンが残ってます。/var/run/docker/containerd/containeroot...WSL2は、ウィンドウを閉じても裏で動いているんですね。なると、たまに再起動したくなるのですが、Linuxのシャットダウンコマンドが使えないので、wsl.exeからシャットダウンします。Desktopが無くても、WSL2だけで永続するDockerデーモンが立てられますね。Desktopいらないかも。Desktopをアンインストールして、WSL2のUbuntuでDockerデーモンを動かすことにしました。WSL2のUbuntuでDockerデーモンを自動起動するしかし、Dockerデーモンを自動実行しようとしても、WSL2ではsystemdが動かないため、そのままでは無理みたい...。https://github.com/microsoft/WSL/issues/4202WSL2でsystemdが動くようにする方法はいつくかあるのですが、どれも面倒で定番的なのがなさげだったので、とりあえずDockerが必要な時に、手動で実行することにしました。してもWSL2でsystemdが使いたくなったら、その時考えるとします。WindowsからWSL2のファイルにアクセスするWSL1の時は、//mnt/経由で、WSL1からWindowsのフォルダにアクセスしていたのですが、WSL2では、WSL2からWindowsのフォルダへのアクセスは遅いので推奨されていません。言え、WSL2とWindowsでフォルダを共有できると便利なので、Windowsから\\wsl$経由でWSL2のフォルダにアクセスします。Terminalが出てきたので、ついでにインストールしました。シンプルで設定も楽そうです。Terminalはカラーテーマを変えられるので見やすくなりますね。設定をいじるのは好きじゃないんですが、PowerShellの色はやっぱこれでしょ。Powershell」にしておきました。感想など以上で、もろもろのWSL1からWSL2への移行ができました。最初、WSL2に移行するのはちょっと不安だったのですが、思った以上に簡単でした。WSL1の環境をそのままWSL2に移行できますし、使い心地もWSL1と変わりませんね。本物のLinuxなので、WSL2の方が安定している気がしないでもないです。server関連はWSL2の方が安定して使えます。Desktopを使うようにすればいいですしね。Code(VS...2020-07-18Dockerのpuppeteerが突然動かなくなった普段Webのクローリングにpuppeteerを使っていて、puppeteerの実...2019-05-22UbuntuでOneDriveを使ってみるここしばらく、OneDriveを触っていました。1引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。