Docker的网络类型
Docker 安装成功后会安装三种网络,可以通过命令docker network ls
查看
在创建容器的时候,可以通过--net
进行指定。
|
|
docker network inspect <net>
查看网络详情。
当启动一个容器的时候,就会想对应的网络的containers中添加subnet和gateway, 在全局注册相关的网络信息。
docker0
另外,Docker安装成功之后,会为bridge网络创建一个默认的docker0的虚拟网络设备,所有的docker容器都是通过桥接模式挂载到docker0上实现宿主机上容器和容器之间的通信。
使用brctl show可以看到虚拟机的网络关系:
其中veth开头的是docker container的虚拟网卡,docker每新建一个container, docker0就会创建一个新的虚拟网卡,名称以veth开头,其余是随机的.
在container上实际看到的是eth0这些.
container上的eth0 和 宿主机上的veth2368ab8 类似一个 PIPE.
挂载到docker0上docker container就这样实现网络互通。
Docker使用route和iptables(要注意 MASQUERADE),为容器创建NAT,这样就可以连接到外网。