windows访问wsl中的docker

1、启动windows路由转发功能: 找到任务管理器 --》服务–》打开服务–》 ROUTing and Remote Access

2、关闭wsl中linux的防火墙

3、查看docker系统和linux系统的ip和网关

以下面为例

# docker系统
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.88.0.5  netmask 255.255.0.0  broadcast 10.88.255.255
        inet6 fe80::d084:2bff:fef8:6f6c  prefixlen 64  scopeid 0x20<link>
        ether d2:84:2b:f8:6f:6c  txqueuelen 1000  (Ethernet)
        RX packets 11018  bytes 34987311 (33.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9275  bytes 518234 (506.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


# linux系统
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.21.119.19  netmask 255.255.240.0  broadcast 172.21.127.255
        inet6 fe80::215:5dff:fe07:9deb  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:07:9d:eb  txqueuelen 1000  (Ethernet)
        RX packets 15968042  bytes 23153227188 (21.5 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2976761  bytes 261480455 (249.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4、在windows中添加路由信息

route add -P docker网段 mask docker子网掩码 Linux系统IP

(-P 长期生效,不加则机器重启后消失)

以上面为例 docker子网掩码为255.255.0.0 网段为10.88.0.0(注意网段,这很容易写错

 route add -P 10.88.0.0 mask 255.255.0.0 172.21.119.19

关于容器无法启动 Exited 139 错误

使用wsl2时,有些镜像太老,可以试下以下方法

1、在windows主机的%userprofile%文件夹下创建一个.wslconfig文件

[wsl2]
kernelCommandLine = vsyscall=emulate

2、cmd中执行 wsl --shutdown

3、重启docker

你可以按照以下步骤在 Windows 上安装 WSL 2 和 Docker: 1. 首先,请确保你的 Windows 版本为 Windows 10 版本 2004 或更高版本,并启用了虚拟化功能。 2. 打开 PowerShell 作为管理员,并运行以下命令以启用 WSL 功能: ``` dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 3. 下载并安装 WSL 2 更新包: - 从 https://aka.ms/wsl2kernel 下载 WSL 2 Linux 内核更新包。 - 安装该更新包。 4. 设置 WSL 默认版本为 2: - 打开 PowerShell 作为管理员,并运行以下命令: ``` wsl --set-default-version 2 ``` 5. 安装适用于 WSL 的 Linux 发行版: - 打开 Microsoft Store 应用商店。 - 在搜索栏搜索你选择的 Linux 发行版(如 Ubuntu、Debian、Fedora 等)。 - 选择一个发行版并安装。 6. 配置 WSL 2: - 在 PowerShell 运行以下命令,将 WSL 2 设置为默认发行版的版本 (将 "YOUR_DISTRO_NAME" 替换为你安装的发行版名称): ``` wsl --set-version YOUR_DISTRO_NAME 2 ``` 7. 下载并安装 Docker Desktop for Windows: - 访问 Docker 官方网站:https://www.docker.com/products/docker-desktop - 下载 Docker Desktop for Windows 并运行安装程序。 8. 在 Docker Desktop 启用 WSL 2 后端: - 打开 Docker Desktop,点击系统托盘Docker 图标。 - 选择 "Settings"。 - 在 "General" 选项卡下,勾选 "Use the WSL 2 based engine"。 - 选择你所安装的 Linux 发行版作为默认的 WSL 发行版。 现在,你已经成功在 Windows 上安装了 WSL 2 和 Docker。你可以在 WSL 运行 Docker 命令并使用容器了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值