wsl2のdockerで古いコンテナが動かない
問題
wslのdockerで、古いコンテナを起動しようとすると、Exited (139) が出ます。
答え
古いOSはvsyscallが使用される場合があるが、wsl2ではデフォルトでOFFなので、使用できずエラーになるらしい。
%UserProfile%\.wslconfig に以下の設定を追加する。
[wsl2]
kernelCommandLine = vsyscall=emulate
wslが実行中なら停止して再度起動。
wsl.exe --shutdown
wslのlinux側の/proc/cmdline に反映されている。
$ cat /proc/cmdline initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=4 vsyscall=emulate
この状態なら古いコンテナを docker run できる。
コメント