Docker容器内访问宿主机

本文最后更新于:2024年9月12日 中午

Docker容器内访问宿主机

问题描述

​ docker的容器内部本身就是一个集成的主机,如果直接请求localhost或者127.0.0.1,将访问容器内部网络,而不是宿主机的网络,一般的解决办法都是直接使用宿主机的ip进行访问,太不方便了,有没有办法比较优雅的解决该问题呢?

问题解决方案

​ 实际上,目前比较新的docker已经提供了比较优雅的解决方案,在启动docker是,加入如下语句;

1
--add-host=host.docker.internal:host-gateway

而在container内,可以直接请求host.docker.internal:port,来获取宿主机上提供的各种服务。

如果使用了Docker Compose,可将如下语句加入到容器配置中,达到同样的效果:

1
2
extra_hosts:
- "host.docker.internal:host-gateway"

Docker容器内访问宿主机
https://genioco.github.io/2024/09/12/Solution/Docker容器内访问宿主机/
作者
BadWolf
发布于
2024年9月12日
许可协议