在Linux上配置Docker网络可以通过多种方式实现,主要包括以下几种方法:
Docker默认使用桥接网络模式(bridge),它会创建一个虚拟网桥docker0,并将容器连接到这个网桥上。
docker network ls
docker network create my_bridge_network
docker run --network my_bridge_network --name my_container -d nginx
主机网络模式会让容器直接使用宿主机的网络栈,不进行任何网络隔离。
docker run --network host --name my_container -d nginx
Overlay网络用于跨多个Docker主机的网络通信,通常用于Swarm模式。
docker network create --driver overlay --subnet 10.0.0.0/24 my_overlay_network
docker run --network my_overlay_network --name my_container -d nginx
Macvlan网络允许你为每个容器分配一个唯一的MAC地址,从而实现更接近物理网络的隔离。
docker network create --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.1 -o parent=eth0 my_macvlan_network
docker run --network my_macvlan_network --name my_container -d nginx
docker-composedocker-compose文件可以简化多容器应用的部署和管理,包括网络配置。
docker-compose.yml文件version: '3'
services:
web:
image: nginx
networks:
- my_network
networks:
my_network:
driver: bridge
docker-compose up -d
你也可以手动配置Docker网络,包括创建自定义网桥、配置IP地址等。
docker network create --driver bridge --subnet 10.0.0.0/24 --gateway 10.0.0.1 my_custom_bridge
docker run --network my_custom_bridge --ip 10.0.0.10 --name my_container -d nginx
选择合适的网络模式取决于你的具体需求,例如隔离级别、跨主机通信、网络管理等。默认的桥接网络模式适用于大多数场景,而overlay网络和macvlan网络则提供了更高级的功能。使用docker-compose可以简化多容器应用的部署和管理。