Docker网络简介

在使用docker的时候由于涉及到docker容器之间的相互通信,所以不理解网络原理寸步难行,本文主要介绍一下docker的网络类型和每种类型的作用区别。


一、简单

在docker中系统默认有三种类型的网络:bridge、host、none

bridge(默认)

  • 默认网络连接就是此网络。
  • 使用NAT转发与宿主机通信,其中 docker0 网络接口充当网关和路由器。
  • 具有DNS解析功能,可以自动解析主机名从而无需输入IP地址通信。
  • 可以给容器单独指定IP地址进行通信。

host

  • 容器与宿主机共享IP与端口资源,由于均共享所以可能会导致容器之间的端口相互冲突。
  • 由于是共享IP,所以可以使用127.0.0.1或localhost在容器之间相互通信,也可以容器与宿主机相互通信。
  • 此模式没有NAT转发,所以效率最高。
  • 无法为容器单独指定IP地址,因为容器和宿主机共享IP和端口资源。

none

  • 不使用网络连接,容器无网络连接。
  • 仅可以在容器内部本地使用127.0.0.1或localhost通信。
  • 不可以跨容器通信。
  • 不可以与宿主机通信。
  • 完全和外部环境隔离。

二、进阶

下面的的网络环境一般不常用。

Overlay

  • Overlay 网络允许在多个 Docker 主机之间创建一个虚拟网络,容器可以通过该网络在不同主机上进行通信。这对于分布式应用程序和容器集群非常有用。Overlay 网络基于 VXLAN(虚拟扩展局域网)技术。

Macvlan

  • Macvlan 网络允许容器分配到物理网络上的 MAC 地址,使其看起来像是网络上的独立设备。这对于需要将容器直接连接到现有网络基础设施的场景非常有用。
  • 简单讲就是从网络拓扑图上看它就是一个独立的一个物理设备。
  • 它仍然受到docker容器运行时的其他限制与隔离。

IPvlan

  • 类似于 Macvlan,IPvlan 也可以让容器拥有独立的 IP 地址,但它是基于网络的虚拟化,而不是基于 MAC 地址。

自定义网络

  • 你可以自己创建更复杂的网络环境

end…