docker 访问宿主机网络

使用宿主机IP

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

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

ifconfig

可以发现宿主机的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网络,通用性好,但带来了暴露宿主网络的风险

高仿 Eyepetizer | 开眼短视频

基于 Kotlin 语言仿写「开眼 Eyepetizer」的一个短视频 Android 客户端项目,采用 Jetpack + 协程实现的 MVVM 架构。

发布于:8月以前  |  1232次阅读  |  详细内容 »

DialogFragment引起的内存泄露

发布于:9月以前  |  1360次阅读  |  详细内容 »

太经典了!雷军 1994 年写的代码,像诗一样优雅!

发布于:10月以前  |  446次阅读  |  详细内容 »

图解 | 线程的麻烦事儿,Actor能解决吗?

发布于:10月以前  |  379次阅读  |  详细内容 »

日志规范多重要,这篇文章告诉你!

发布于:10月以前  |  365次阅读  |  详细内容 »

最经典的两种软件架构模式

发布于:10月以前  |  316次阅读  |  详细内容 »

VSCode源码分析 - 主要窗口

workbench.ts中startup里面Workbench负责创建主界面,其文件路径为:`src/vs/workbench/browser/workbench.ts`

发布于:10月以前  |  564次阅读  |  详细内容 »

docker 访问宿主机网络

docker容器访问宿主的方法

发布于:10月以前  |  669次阅读  |  详细内容 »

源码浅析 SDWebImage 5.5.2

本文基于 SDWebImage 5.5.2。重读的原因也是由于发现它的 API 在不断迭代,许多结构已经不同与早期版本,同时也是为了做一个记录。阅读顺序也会依据 API 执行顺序进行,不会太拘泥于细节,更多是了解整个框架是如何运行的。

发布于:11月以前  |  667次阅读  |  详细内容 »

go-micro 到底是个啥?

go-micro 到底是个啥?这是很多初接触微服务的技术人员想要弄清楚的,但是大多数文章都只告诉你 go-micro 是一个微服务框架,国内大多数作者写出来的文章都只是 go-micro 官网上的示例代码,这样的代码还被随意转载。这让很多初接触微服务和 go-micro 有点摸不到头脑。本文试图说清楚这些事。

发布于:1年以前  |  496次阅读  |  详细内容 »

最多阅读

Redis面试题(2020最新版) 1年以前  |  977次阅读
MySQL数据库面试题(2020最新版) 11月以前  |  862次阅读
docker 访问宿主机网络 10月以前  |  669次阅读
Ubuntu16.04升级openssl到1.1.1 1年以前  |  668次阅读
今日头条技术架构到底有多牛? 9月以前  |  540次阅读
面向数据科学家的 Docker 最佳实践 1年以前  |  520次阅读
两万字深度介绍分布式系统原理! 11月以前  |  507次阅读
Redis面试题(2020最新版) 11月以前  |  501次阅读
Kafka 设计详解之网络通信 1年以前  |  490次阅读
nginx处理跨域 10月以前  |  461次阅读
API 网关从入门到放弃 11月以前  |  440次阅读
微信支付跨平台软件架构 11月以前  |  435次阅读
饿了么交易系统 5 年演化史 10月以前  |  434次阅读
CentOS 开机流程详解 9月以前  |  427次阅读