背景
在docker启动的容器中需要访问宿主机上的服务,所以在容器中通过localhost或者127.0.0.1 。但是这样是不行的。
访问url:http://127.0.0.1:8088 或者http://localhost:8088
原因
docker是一个虚拟环境,127.0.0.1和localhost指的是虚拟环境内部,而不是外部宿主机,所以无法这样访问.
解决方案
-
对于mac和windows,可以使用host.docker.internal替换127.0.0.1,如http://host.docker.internal:9200 (亲测好使)
-
对于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
创建成功后可以通过docker命令查看创建的网络文章来源:https://www.toymoban.com/news/detail-550762.html
docker network ls
使用192.168.0.1替换127.0.0.1,如http://192.168.0.1:8088文章来源地址https://www.toymoban.com/news/detail-550762.html
到了这里,关于docker内部如何访问宿主机上的服务或者应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!