当创建一个 Docker 容器时,它会被分配到一个网络命名空间中。在这个命名空间中,容器有自己的网络接口、IP 地址和路由表。
默认情况下,Docker 使用桥接网络(Bridge Network)模式。在这种模式下,每个容器都连接到一个共享的虚拟网桥上,该网桥由 Docker 创建并管理。Docker 宿主机也通过一个虚拟网络接口连接到这个网桥上。
使用桥接网络模式,每个容器可以通过其 IP 地址相互通信。此外,Docker 还为每个容器分配了唯一的主机名,并在内置 DNS 服务器中注册了这些主机名,以便容器之间可以通过主机名进行通信。
除了桥接网络模式,Docker 还提供其他几种网络模式:
主机网络(Host Network)模式将容器直接加入到宿主机的网络栈中。这意味着容器与宿主机共享同一个 IP 地址和端口空间。在主机网络模式下,容器可以直接访问宿主机上运行的服务,并且无需进行端口映射。
Overlay 网络(Overlay Network)允许不同 Docker 主机上的容器进行跨主机通信。Overlay 网络使用软件定义网络技术,在底层物理或虚拟网络之上创建一个逻辑网络。通过配置 Overlay 网络,可以将多个主机上的容器连接到同一个虚拟网络中,并实现容器间的通信。
MACVLAN 网络(MACVLAN Network)允许将容器直接连接到物理局域网(LAN),并与 LAN 上的其他设备进行通信。在 MACVLAN 模式下,每个容器都分配了唯一的 MAC 地址和 IP 地址,并且能够像物理设备一样与局域网上的其他设备进行交互。
需要根据具体需求选择合适的 Docker 网络模式。除了这些内置的网络模式,还可以使用自定义网络来满足特定场景下的需求。
内容由零声教学AI助手提供,问题来源于学员提问