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

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

原创 技术生活 技术生活 2020-04-15 09:00

点击上方”技术生活“,选择“设为星标”

做积极的人,而不是积极废人

  • 背景

  • 原因分析

  • 解决方案

背景


        已经通过docker启动的elasticsearch 服务,监听端口9200。在宿主机中直接通过http://127.0.0.1:9200 可以直接访问,但是通过docker访问缺不行,访问url:http://127.0.0.1:9200 或者http://localhost:9200

原因分析


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


 

解决方案


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

    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:9200

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万事俱备,就差一个程序员了

谢谢您,赏俺根辣条,尝尝鲜.谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值