WSL2でDockerサービスが起動しない場合の対処法

環境

症状

 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 
          
        

更新履歴