V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaoyanbot
V2EX  ›  问与答

哪位大神玩过 Docker Desktop(Win)里的 Docker IP 和 Win 宿主机之间的互通吗? 按教程没成功

  •  
  •   xiaoyanbot · 2020-08-10 19:38:16 +08:00 · 2462 次点击
    这是一个创建于 1595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://www.pianshen.com/article/35251276782/

    按照这个教程里的添加路由的方式没有成功。

    无论是 Hyper-V 和 WSL2 后端,都无法成功。

    奇怪的是,可以从 Docker 内部 ping 通 Hyper-V 网卡的 IP, 但是无法从 Win Ping 通 172 开头的 IP

    8 条回复    2020-08-10 21:47:31 +08:00
    xiaoyanbot
        1
    xiaoyanbot  
    OP
       2020-08-10 19:49:14 +08:00
    两个容器之间是通的, 即 172.17.0.2 和 172.17.0.3 之间是通的
    albert0yyyy
        2
    albert0yyyy  
       2020-08-10 19:55:51 +08:00
    docker 和 windows 宿主机我试过数据库通信,填 host.docker.internal,就这么一串,挺疑惑的
    xiaoyanbot
        3
    xiaoyanbot  
    OP
       2020-08-10 20:09:33 +08:00
    使用 -p 90:90 这样的端口映射,可以正常映射出来
    xiaoyanbot
        4
    xiaoyanbot  
    OP
       2020-08-10 20:21:19 +08:00
    发现可以通过 wsl -d docker-desktop 进入 docker-desktop 的 WSL 虚拟机
    putaozhenhaochi
        5
    putaozhenhaochi  
       2020-08-10 21:04:35 +08:00
    --network=host
    xiaoyanbot
        6
    xiaoyanbot  
    OP
       2020-08-10 21:40:00 +08:00
    @putaozhenhaochi

    谢谢指点

    好像在 Win 版本的 docker desktop 上,会忽略这个参数
    xiaoyanbot
        7
    xiaoyanbot  
    OP
       2020-08-10 21:40:25 +08:00
    目前先用多映射出来几个端口备用的方式,先用着了。
    Jirajine
        8
    Jirajine  
       2020-08-10 21:47:31 +08:00 via Android
    你这种方式相当于从 docker 主机外访问 docker 容器,对 docker 来说是很不安全的操作,所以默认情况下 docker 会操作宿主机上的 iptables 丢弃掉转发到 docker 容器的流量。
    在 docker 的宿主虚拟机上执行:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -I FORWARD -j ACCEPT

    建议不要在非 Linux 系统上用 docker 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.