wsl2 ip变动导致docker不可访问

初次没有关机的情况下 docker内部的所有运行的镜像内容是可以通过localhost访问到的,但是重启后,发现镜像都是运行的,所有地址都变得不可访问,这主要是由于docker内部ip地址改变引起的,下面就来说说如何解决:

  1. 安装wsl2host
    wsl2host下载地址(https://github.com/shayne/go-wsl2-host/releases)
    下载完成后,以管理员身份运行命令提示符cmd,安装过程如下:

    1
    wsl2host.exe install

    安装完后会出现以下提示信息让你输入win10的账户和密码,这个账户和密码就是你登录电脑的账户和密码

    1
    2
    Windows Username: <username-you-use-to-login-to-windows>
    Windows Password: <password-for-this-user>

    输入密码后,如无错误提示,则表明安装wsl2host成windows服务成功,检查一下wsl2host服务启动是否成功
    在这里插入图片描述
    在这里插入图片描述
    如果wsl2 host 服务是在运行状态,表示安装成功!

  2. 检查Windows Hosts文件
    wsl2host服务启动成功后,会修改Windows hosts文件(位置:C:\Windows\System32\drivers\etc\hosts),效果如下:

    1
    172.17.133.173 ubuntu.wsl    # managed by wsl2-host

    如果WSL2停止再重新启动的话,wsl2host服务会自动更新Win10 hosts文件里的IP地址,我们访问WSL2使用别名
    ubuntu.wsl就可以了,再也不用担心WSL2 IP地址经常变动,这里一定要看你自己host文件里是什么地址,而且这个映射地址最好不要改,每次wsl2ip地址变动,这里会根据域名来修改地址

注意:有些小伙伴可能会在install wsl2 host的时候 帐号密码输入错误,会导致wsl2 host 服务启动失败,手动启动一下,如果提示“登录失败,服务无法启动”那么进入windows管理工具-本地安全策略-本地策略-用户分配权限 ,找到“作为服务登录”把当前电脑登录用户名加入进去,再次重新启动服务即可

在这里插入图片描述