美文网首页
docker容器内访问宿主机127.0.0.1服务

docker容器内访问宿主机127.0.0.1服务

作者: wwqGrowing | 来源:发表于2023-12-31 22:08 被阅读0次

    已经通过docker启动的业务服务。在宿主机中直接通过http://127.0.0.1:3306 可以直接访问数据库,但是通过docker访问缺不行,访问url:http://127.0.0.1:3306 或者http://localhost:3306

    原因分析

    docker是一个虚拟环境,127.0.0.1和localhost指的是虚拟环境内部,而不是外部宿主机,所以无法这样访问.
    

    解决方案

    1、 对于mac和windows,可以使用host.docker.internal替换127.0.0.1,如http://host.docker.internal:3306 (亲测好使)

    2、对于Linux可以采用如下方案: 创建一个桥接网络

    下面的localNet是网络名字,可自行修改;关于192.168.0.0这个子网,也可以自行定义.

    默认按照下面的命令,执行后将可以通过192.168.0.1访问宿主机.

    docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet
    

    使用192.168.0.1替换127.0.0.1,如http://192.168.0.1:3306

    相关文章

      网友评论

          本文标题:docker容器内访问宿主机127.0.0.1服务

          本文链接:https://www.haomeiwen.com/subject/wbwyndtx.html