Docker的网络模型
类型 | 说明 |
---|---|
None | 不为容器配置任何网络功能,没有网络 --net=none |
Container | 与另一个运行中的容器共享Network Namespace,--net=container:containerID,k8s中Pod容器之间用此网络。 |
Host | 与主机共享Network Namespace,--net=host |
Bridge | Docker设计的NAT网络模型(默认类型) |
1、bridge(桥接默认)
- 网桥:docker0
- 技术:evth-pair技术:就是一对虚拟设备接口,他们都是成对出现的。一端连着协议,一端彼此相连。
每启动一个容器会给容器自动分配一对网卡设备,一半在容器上,一半在docker0上。
docker0桥默认是SNAT桥(masquerade伪装),外部主机要访问容器需要DNAT规则。
2、None
不设置网络,相当于容器内没有配置网卡,用户可以手动配置。
3、Host
容器和宿主机共享网络名称空间
docker run --name xxx --net=host xxxx
4、Container(联合网络)
两个容器共享网络名称空间Net,UTS,IPC,而user,Mount,pid都是独立的。
#docker run --name b2 -it busybox
#docker run --name b1 -it --network container:b1 --rm busybox
参考