[502 报错]Docker 容器访问宿主机网络

问题描述

  nginx 是使用 docker 方式运行,再使用 nginx 进行反向代理时,始终提示 502 错误,只能将域名指向公网 IP+ 端口,这样并不能起到隐藏端口的目的,防火墙还是需要将 6806(思源)的端口开放

  ‍

  想到 docker 的 localhost 相当于把宿主机作为路由器获得的更低一层的 IP 地址,遂百度标题, 果然有大佬提出了解决方案

  贴上原文

  Docker 容器访问宿主机网络

  ‍

解决方案:

  docker 默认创建的虚拟网卡名字为 docker0,在宿主机执行下面这句代码
ip addr show docker0

  ​image

  ‍

  172.17.0.1 即宿主机 IP

  ‍

最终配置

location / {
        proxy_pass         http://172.17.0.1:6806;
    }

  修改配置,然后关闭 6806 端口,完美解决

  ‍

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...