host、bridge与none
docker在安装好会自带三个网络,通过docker network ls 可以查看,分别为host、bridge、none。
- host:与主机共用网络环境
- bridge:网桥模式,docker安装启动后,会在宿主机创建一个名为docker0的虚拟网络接口(网桥),默认选择172.17.0.1/16网段,通过docker0与iptables nat表配置与宿主机通信,在这个模式下,连在同一网桥上的容器可以互相通信
- none:无网络环境
在docker run创建容器时,可以指定–net参数来选择网络,默认使用bridge模式
overlay
Overlay网络实际上是目前最主流的容器跨节点数据传输和路由方案。 首先创建overlay网络:docker network create -d overlay --subnet=10.0.2.1/24 --attachable my-overlay 再创建容器使用overlay网络:docker run -itd --network=my-overlay --name=CT1 centos /bin/sh
Overlay网络实现了DNS功能,可使用hostname连接网络。
技术漫谈 | docker overlay网络实现 docker网络之overlay Docker 实践之 Overlay网络
容器跨主机通信
方法一:容器与主机端口映射
docker run的时候指定-p参数 docker run -it 3306:3306 mysql /bin/bash
方法二:使用host模式
这种方式与宿主机共用网络,但应用场景有限,容易出现端口冲突,也无法做到隔离网络环境 docker run -it --net host mysql /bin/bash
方法三:Overlay
主流的跨主机通信方案
|