TL;DR
- CentOS6など、古いベースイメージの起動に失敗(エラーコード:139)が発生することへの回避策
動作環境
- Windows 10 Home 64bit (2004)
- Ubuntu 18.04 LTS
- WSL2
- Docker 19.03.08
回避策
まずは、ホストの%USERPROFILE%/.wslconfigに、以下を追記した上で、WSL2を再起動する
wsl -t だけではダメそうだったのでPCごと再起動が無難だと思います
[wsl2]
kernelCommandLine=vsyscall=emulate
確認
WSL2にログインし、以下のコマンドを実行し、vsyscall=emulate が追記されていればOK
cat /proc/cmdline
-> initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=4 vsyscall=emulate
試しに、centosイメージを起動してみて、Exited(139)になっていなければ解決
docker pull centos:6
docker run -dti centos:6 /bin/bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fe6f93cf876 centos:6 "/bin/bash" 4 seconds ago Up 2 seconds dreamy_burnell
参考URL
Enable vsyscall=emulate in the kernel config to run older base images such as Centos 6 #4694