跳转到主内容
思享编程网:思考分享,玩转编程世界!

WSL2更新后,Docker容器访问不了怎么办?

大家好,我是陆砚码,今天来和大家聊聊一个实用的小技巧。最近有朋友遇到了一个问题:WSL2更新到最新版本后,使用镜像网络,但创建的Docker容器却无法访问。这可真是让人头疼了一整天啊!别急,今天我们就来解决这个问题。

首先,我们来了解一下背景:

在Windows 2023年9月的一次更新中,WSL2支持了新的网络模式——镜像模式。这个模式可以让WSL2通过localhost地址连接到Windows的127.0.0.1地址,相当于和本地主机拥有同一个IP。这对于之前WSL2的网络模式来说是一个很大的改进,尤其是对于需要反弹shell等操作的场景。

要更新到WSL2 2.0往上的版本,首先需要有Win11 23H2或更高版本的系统,并且已经安装了wsl2先前的版本。更新命令是:

wsl --update --pre-release

更新完成后,需要手动开启镜像网络模式。在“C:\Users\用户名\”路径下创建一个.wslconfig文件,并添加以下参数:

[experimental]
networkingMode=mirrored # 开启镜像网络模式
hostAddressLoopback=true # 可以通过IP访问

但是,这里有个问题,开启镜像网络模式后,Docker容器无法访问。这是因为Docker使用了iptables来转发端口。所以,我们需要禁用iptables。在/etc/docker/daemon.json文件中添加以下内容:

[
                            

相关文章