Docker 的网络模型是 Docker 容器之间以及与宿主机之间进行通信的基础。Docker 提供了几种不同的网络模式,包括 bridge
(桥接模式,默认模式)、host
(主机模式)、none
(无网络模式)、container
(容器模式)以及自定义网络(如 overlay
网络,用于 Docker Swarm)。这里,我们将详细解析 bridge
网络模式,并提供一个实际的代码示例,展示如何创建容器并让它们在同一桥接网络上通信。
1. Bridge 网络模式
Bridge 网络是 Docker 默认的网络模式。Docker 会在宿主机上创建一个虚拟的桥接网络接口(通常是 docker0
),然后将容器连接到这个桥接网络上。每个容器都会被分配一个唯一的 IP 地址,并且可以通过 IP 地址或者容器名(在 Docker 内部 DNS 解析的帮助下)相互通信。
2. 示例:创建两个容器并让它们通信
步骤 1: 创建第一个容器
我们将创建一个运行 Web 服务器的容器(比如 Nginx),并将其命名为 web-server
。
bash复制代码
docker run --name web-server -d -p 8080:80 nginx
这里,-d
参数表示在后台运行容器,-p 8080:80
表示将容器的 80 端口映射到宿主机的 8080