Docker 网络在 Docker 环境中连接和隔离容器方面发挥着至关重要的作用。正确的网络允许容器相互通信、与主机通信以及与外部网络通信。 Docker 提供了各种网络选项来适应不同的用例。 ### 7.1.1 关键的 Docker 网络概念 - **桥接网络:**安装 Docker 时创建的默认网络。连接到桥接网络的容器可以相互通信。 - **覆盖网络:**用户定义的网络,跨越多个 Docker 主机,允许容器跨不同节点无缝通信。 - **主机网络:**容器共享主机的网络堆栈,绕过网络隔离。 ## 7.2 Docker 桥接网络 桥接网络是连接同一主机上的容器的默认网络。 ### 7.2.1 演示:创建容器并将其连接到桥接网络 1.创建桥接网络: 2. 运行连接到桥接网络的容器: 3.同一网桥网络上的容器可以使用容器名称进行通信。 ## 7.3 覆盖网络 覆盖网络允许容器跨多个 Docker 主机进行通信。 ### 7.3.1 演示:创建容器并将其连接到覆盖网络 1. 初始化 Docker Swarm: 2. 创建覆盖网络: 3. 运行连接到覆盖网络的服务: 4. 不同节点上的容器可以通过overlay网络进行通信。 ## 7.4 主机网络 连接到主机网络的容器共享主机的网络堆栈。 ### 7.4.1 演示:将容器连接到主机网络 1. 运行连接到主机网络的容器: 2.容器可以直接访问宿主机上的服务。 ## 7.5 网络检查与故障排除 Docker 提供了用于检查网络和排除网络故障的命令。 ### 7.5.1 演示:检查 Docker 网络 1. 列出所有 Docker 网络: 2. 检查特定网络的详细信息: 3. 排除网络连接故障: 了解 Docker 网络对于创建健壮且可扩展的容器化应用程序至关重要。无论您需要容器在同一主机上还是跨分布式环境进行通信,Docker 都提供了各种网络选项来满足您的要求。在下一章中,我们将探讨 Docker 安全实践,以确保容器化应用程序的完整性和安全性。docker network create my-bridge-network
docker run -d --name container-1 --network my-bridge-network nginx
docker run -d --name container-2 --network my-bridge-network nginx
docker swarm init
docker network create --driver overlay my-overlay-network
docker service create --name service-1 --network my-overlay-network nginx
docker service create --name service-2 --network my-overlay-network nginx
docker run -d --name container-host --network host nginx
docker network ls
docker network inspect my-bridge-network
docker network connect my-bridge-network container-1