SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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 できる。

関連するメモ

コメント