博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker的bridge网络
阅读量:6954 次
发布时间:2019-06-27

本文共 1150 字,大约阅读时间需要 3 分钟。

hot3.png

在网络方面,桥网是一种链路层设备,它可以在网络段之间传输流量。 桥可以是硬件设备,也可以是在主机

内核中运行的软件设备。 就Docker而言,桥网使用的是一个软件桥,它允许连接到同一桥网的容器进行通信,同时提供与不连接到桥网的容器隔离。 Docker桥驱动程序自动地在主机上安装规则,所以不同的桥接网络上的容器不能直接通信。

桥接网络适用于运行在相同的Docker守护进程主机上的容器。 对于运行在不同的Docker守护进程主机上的容器之间的通信,您可以在OS级别管理路由,也可以使用覆盖网络。 当你开始Docker时,一个默认的桥网络(也称为 bridge )是自动创建的,新启动的容器连接到它,除非有其他指定。 您还可以创建用户定义的自定义桥网络。 用户定义的桥接网络优于默认的桥接网络。

用户定义的桥和默认桥之间的区别

  • 用户定义的桥在容器化的应用程序之间提供更好的隔离和互操作性

连接到相同用户定义的桥接网络的容器会自动地将所有端口暴露在一起,而对外部世界没有端口。 这使得容器应用程序可以轻松地进行通信,而不会意外地打开外部世界的访问。

假设有一个具有web前端和数据库后端的应用程序。 外部世界需要访问web前端(可能在端口80上),但只有前端本身需要访问数据库主机和端口。 使用用户定义的桥,只需要打开web端口,而数据库应用程序不需要打开任何端口,因为web前端可以通过用户定义的桥到达它。

如果您在默认的桥接网络上运行相同的应用程序堆栈,则需要使用 -p--publish 为每个应用程序堆栈打开web端口和数据库端口。

  • 用户定义的桥梁在容器之间提供自动DNS解析

默认桥接网络上的容器只能通过IP地址访问,除非您使用 ,它被认为是legacy。 在用户定义的桥接网络中,容器可以通过名称或别名彼此解析。

想象一下与前一个点相同的应用程序,有一个web前端和一个数据库后端。 如果您调用您的容器web和db,那么web容器可以在db上连接到db容器,不管哪个Docker主机正在运行应用程序堆栈。

如果您在默认的桥接网络上运行相同的应用程序堆栈,您需要手动创建容器之间的链接(使用legacy -link)标志。 这些链接需要在两个方向上创建,因此您可以看到,两个以上的容器需要进行通信时,这一过程变得复杂。 或者,您可以在容器中操作 /etc/hosts 文件,但是这会造成难以调试的问题。

  • 可以将容器连接起来,并从用户定义的网络上分离

在容器的生命周期中,您可以动态地连接或断开用户定义的网络。 要从默认的桥接网络中删除一个容器,您需要停止容器并使用不同的网络选项重新创建它。

 

转载于:https://my.oschina.net/jennerlo/blog/1627399

你可能感兴趣的文章
MVVM_Android-CleanArchitecture
查看>>
iOS开发-协议Protocol&代理delegate
查看>>
【系统架构师修炼之道】(4):绪论——Zachman 框架
查看>>
Foxify v0.10.7 发布,基于 TypeScript 的 Node 框架
查看>>
Python数据结构——双端队列
查看>>
GitHub 项目推荐:用深度学习让你的照片变得美丽 ...
查看>>
另类文件加密 图片当密码给文本加密
查看>>
MySQL数据库如何解决大数据量存储问题
查看>>
CENTOS6.5 yum配置
查看>>
《自顶向下网络设计(第3版)》——1.6 复习题
查看>>
【转】微信小程序给程序员带来的可能是一个赚钱的机遇
查看>>
《Programming Ruby中文版:第2版》终于正式出版了
查看>>
使用Observium来监控你的网络和服务器
查看>>
蚂蚁区块链团队资讯简报20170514
查看>>
线性空间(向量空间)
查看>>
多媒体之录音
查看>>
mysql 分区类型详解
查看>>
ORACLE同义词总结
查看>>
ios字体设置
查看>>
【SICP练习】51 练习2.19
查看>>