docker容器内访问宿主机host服务
问题:docker的container内,本身是一个微小的主机,那么请求127.0.0.1或者localhost,自然是请求到了container本身的网络,而无法抵达宿主机。在以往,需要各位去手动寻找docker创建的docker0 bridge来访问宿主机网络,但在今天,docker已经提供了非常优雅的解决办法了
Linux:
Docker版本高于v20.10(2020年12月4日更新)
在启动docker时,加入如下语句
--add-host=host.docker.internal:host-gateway
而在container内,可以直接请求host.docker.internal:PORT,来获取宿主机上提供的各种服务
如果使用了Docker Compose,则应该将下面的句子加入container的声明中:
extra_hosts:
- "host.docker.internal:host-gateway"
Mac和Windows:
Docker版本高于v18.03(2018年3月21日更新)
直接在container内使用host.docker.internal:PORT来访问宿主机服务即可
对于Mac上Docker版本低于上述版本的:
Mac Docker版本v17.12到v18.02: 使用docker.for.mac.host.internal
Mac Docker版本v17.06到v18.11: 使用docker.for.mac.localhost
对于更低版本的docker,只能使用老旧的方法了,这里不再多做赘述
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)