千家信息网

Docker容器访问宿主机网络的方法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,最近部署一套系统,使用nginx作反向代理,其中nginx是使用docker方式运行:$ docker run -d --name nginx $PWD:/etc/nginx -p 80:80 -p
千家信息网最后更新 2026年11月02日Docker容器访问宿主机网络的方法

最近部署一套系统,使用nginx作反向代理,其中nginx是使用docker方式运行:

$ docker run -d --name nginx $PWD:/etc/nginx -p 80:80 -p 443:443 nginx:1.15

需要代理的API服务运行在宿主机的 1234 端口, nginx.conf 相关配置如下:

server { ... location /api {  proxy_pass http://localhost:1234 } ...}

结果访问的时候发现老是报 502 Bad Gateway 错误,错误日志显示无法连接到upstream。

仔细想一想, nginx.conf 中的 localhost 似乎有问题。由于nginx是运行在docker容器中的,这个 localhost 是容器的localhost,而不是宿主机的localhost。

到这里,就出现了本文要解决的问题:如何从容器中访问到宿主机的网络?通过搜索网络,有如下几种方法:

使用宿主机IP

在安装Docker的时候,会在宿主机安装一个虚拟网关 docker0 ,我们可以使用宿主机在 docker0 上的IP地址来代替 localhost 。

首先,使用如下命令查询宿主机IP地址:

$ ip addr show docker03: docker0:  mtu 1500 qdisc noqueue state UP group default  link/ether 02:42:d5:4c:f2:1e brd ff:ff:ff:ff:ff:ff  inet 172.17.0.1/16 scope global docker0    valid_lft forever preferred_lft forever  inet6 fe80::42:d5ff:fe4c:f21e/64 scope link    valid_lft forever preferred_lft forever

可以发现宿主机的IP是 172.17.0.1 ,那么将 proxy_pass http://localhost:1234 改为 proxy_pass http://172.17.0.1:1234 就可以解决 502 Bad Gateway 错误。

但是,不同系统下宿主机的IP是不同的,例如Linux下一般是 172.17.0.1 , macOS下一般是 192.168.65.1 ,并且这个IP还可以更改。所以使用IP配置 nginx.conf ,不能跨环境通用。

使用host网络

Docker容器运行的时候有 host 、 bridge 、 none 三种网络可供配置。默认是 bridge ,即桥接网络,以桥接模式连接到宿主机; host 是宿主网络,即与宿主机共用网络; none 则表示无网络,容器将无法联网。

当容器使用 host 网络时,容器与宿主共用网络,这样就能在容器中访问宿主机网络,那么容器的 localhost 就是宿主机的 localhost 。

在docker中使用 --network host 来为容器配置 host 网络:

$ docker run -d --name nginx --network host nginx

上面的命令中,没有必要像前面一样使用 -p 80:80 -p 443:443 来映射端口,是因为本身与宿主机共用了网络,容器中暴露端口等同于宿主机暴露端口。

使用host网络不需要修改 nginx.conf ,仍然可以使用 localhost ,因而通用性比上一种方法好。但是,由于 host 网络没有 bridge 网络的隔离性好,使用 host 网络安全性不如 bridge 高。

总结

本文提出了使用宿主机IP和使用host网络两种方法,来实现从容器中访问宿主机的网络。两种方法各有优劣,使用宿主机IP隔离性更好,但通用性不好;使用host网络,通用性好,但带来了暴露宿主网络的风险。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

网络 宿主 宿主机 容器 方法 端口 运行 配置 时候 通用性 错误 不同 命令 地址 就是 系统 问题 代理 隔离 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 互联网科技工作委员会副主任毛军 云信互联网科技有限公司 互联网科技会 互联网公司 科技公司 互联网科技公司名称 互联网教育科技公司vipkid 辽宁互联网新科技 成都互联网科技公司工作好不好 坤平互联网科技 想开互联网科技公司怎么样 国大互联网教育科技有限公司工作 本届互联网博览会上的黑科技 中和天地互联网科技有限公司 山东星卡互联网科技有限公司官网 互联网企业科技类企业如何做账 济南小医互联网科技有限公司招聘 亚光科技低轨卫星互联网 华人运通互联网科技公司 青岛互联网科技园 A股互联网金融科技公司 金融科技 互联网金融 互联网科技排名 狮子座互联网科技培训 互联网高科技企业 互联网公司会议桌创意科技软装饰 上海电发互联网科技有限公司 互联网金融科技公司干啥的 洛阳共同富裕互联网科技有限公司 互联网科技和法律行业
0