插件窝 干货文章 怎么用docker虚拟网络

怎么用docker虚拟网络

网络 network Docker 容器 406    来源:    2025-04-28

Docker 虚拟网络使用指南

Docker 提供了强大的网络功能,允许容器之间以及容器与外部世界进行通信。以下是 Docker 虚拟网络的主要使用方法和概念:

1. Docker 网络类型

Docker 默认提供几种网络驱动:

  • bridge:默认网络驱动,适用于独立容器通信
  • host:移除容器与宿主机之间的网络隔离
  • overlay:连接多个 Docker 守护进程,用于 Swarm 集群
  • macvlan:为容器分配 MAC 地址,使其在网络上显示为物理设备
  • none:禁用所有网络

2. 基本网络操作

查看现有网络

docker network ls

创建自定义网络

docker network create --driver bridge my-bridge-network

查看网络详情

docker network inspect my-bridge-network

删除网络

docker network rm my-bridge-network

3. 容器网络操作

运行容器并连接到特定网络

docker run -d --name container1 --network my-bridge-network nginx

将运行中的容器连接到网络

docker network connect my-bridge-network container1

断开容器与网络的连接

docker network disconnect my-bridge-network container1

4. 高级网络配置

指定子网和网关

docker network create --driver=bridge --subnet=192.168.100.0/24 --gateway=192.168.100.1 my-bridge-network

为容器指定静态IP

docker run -d --name container1 --network my-bridge-network --ip 192.168.100.10 nginx

创建 overlay 网络(用于Swarm集群)

docker network create -d overlay my-overlay-network

5. 网络隔离与安全

限制容器间通信

docker network create --driver=bridge --internal my-isolated-network

启用容器间通信加密

docker network create --driver=overlay --opt encrypted my-secure-network

6. 网络诊断工具

查看容器网络配置

docker exec -it container1 ip addr

测试容器间网络连通性

docker exec -it container1 ping container2

查看 iptables 规则(用于Docker网络)

iptables -L -n

7. 最佳实践

  1. 为生产环境创建自定义网络,而不是使用默认的 bridge 网络
  2. 使用 DNS 名称而不是 IP 地址进行容器间通信
  3. 为不同应用或服务使用不同的网络,提高安全性
  4. 在 Swarm 集群中使用 overlay 网络
  5. 对于需要直接暴露在物理网络中的服务,考虑使用 macvlan 网络

通过合理使用 Docker 虚拟网络,您可以构建灵活、安全且高效的容器化应用架构。