docker启动后WSL2中的连通性丢失



当我启动docker时,我在WSL2中失去了连接

$ curl google.fr                                                                                                    
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">

$ sudo service docker start
$ curl google.fr          
<timeout>

我知道所有的WSL2连接问题与VPN和思科anyconnect。
但在这种特殊情况下,我没有连接任何VPN。

要恢复与互联网的连接,我必须在PowerShell中执行wsl --shutdown。但是我失去了docker…

找到一个简单的修复

来自与WSL2使用相同网络的docker。
要解决这个问题,你应该明确地告诉docker使用不同的网络。

添加到您的/etc/docker/daemon.json

{
"bip" : "10.10.0.1/16"
}

如果文件不存在,创建它

credit: https://github.com/microsoft/WSL/issues/4285#issuecomment-1180567785


现在bip是不同的,你可能需要更新它依赖于docker的其他技术。例如,在minikube上,必须在启动期间将新的bip定义为参数。
对于ie:

minikube start --docker-opt bip=10.10.0.1/16 

编辑

过了一段时间,所有的机器又停止工作了。为了解决这个问题,我停用了自生成resolv.conf (sudo nano/etc/wsdl .conf),然后使用wsl --shutdown的powershell杀死了wsl2。打开新shell,启动docker,编辑/etc/resolv.conf,将内容替换为nameserver 8.8.8.8。退出后,网络连接恢复。

别问为什么!要有信心……

相关内容

  • 没有找到相关文章

最新更新