WSL2でDockerサービスが起動しない場合の対処法
環境
- Windows11
- WSL2
- Ubuntu22.04 LTS
症状
sudo service docker
startでdockerサービスを起動すると起動成功のメッセージが表示されるが、sudo
service docker statusでステータスを確認すると* Docker is not running
と表示されている。
調査方法
cat /var/log/docker.log
docker.logを確認すると、以下のエラーメッセージが表示されている。
failed to start daemon: Error initializing network controller:
error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain:
(iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables):
RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1 (exit status 4))
原因
WSL2のiptablesが正しく設定されていないため(新しすぎて対応できない)、Dockerサービスが起動できない。
対処法
WSL2のiptablesをバックポートする。
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
更新履歴
- 新規作成。