前言
- 新版WSL2已經支援映象模式網路 可以將WSL2的IP固定為與主機相同 映象模式網路
- 但是在啟用後WSL2中Docker執行的服務本機無法訪問 issues 10494
- 結合上述issues給出自己的使用心得幫助大家避坑
環境
- Win11 23H2
win + r > winver
- WSL 2.1.5.0
win + r > cmd > wsl --version
步驟
- 編輯wslconfig開啟映象網路 wsl-config
- win + r 輸入 %UserProfile% 新建 .wslconfig 建議內容如下
[wsl2]
memory=8GB #記憶體最大值
swap=8GB #虛擬記憶體最大值
processors=4 #cpu核最大值
networkingMode=mirrored # 開啟映象網路
dnsTunneling=true # 開啟 DNS Tunneling
firewall=true # 開啟 Windows 防火牆
autoProxy=true # 開啟自動同步代理
[experimental]
sparseVhd=true # 開啟自動釋放 WSL2 虛擬硬碟空間
autoMemoryReclaim=gradual # 開啟自動回收記憶體
hostAddressLoopback=true # 允許容器透過分配給主機的 IP 地址連線到主機
- 開放防火牆 管理員許可權開啟PowerShell執行
Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow
- 重啟WSL2之後本機和區域網即可透過本機IP訪問WSL2中的服務
開啟Docker並使其可訪問
- 按照官方步驟安裝WSL2 install
- 安裝Docker(docker-ce)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 等待20s自動安裝Docker
- 編輯/etc/docker/daemon.json檔案新增如下內容
{
"iptables": false
}
- 重啟WSL2之後WSL2中Docker執行的服務本機和區域網內都可以訪問到了