docker专题(五)-- docker网络
故事凌 故事凌 2月29日
8. docker网络和容器的通信
8.1 docker网络通信的基本原理
Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势 就是转发效率极高。这是因为Linux通过在内核中进行数据复制来 实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据 包将被直接复制到接收接口的接收缓存中,而无需通过外部物理 网络设备进行交换。对于本地系统和容器内系统来看,虚拟接口 跟一个正常的以太网卡相比并无区别,只是它速度要快得多
Docker容器网络就很好地利用了Linux虚拟网络技术,在本地主机 和容器内分别创建一个虚拟接口,并让它们彼此连通(这样的一 对接口叫做veth pair)。
8.2 docker默认网络模式
docker run -it centos:7 /bin/bash# 进入到容器以后,yum install -y net-tools && ifconfig
- 创建一对虚拟接口,分别放到本地主机和新容器的命名空间中;
- 本地主机一端的虚拟接口连接到默认的docker0网桥或指定网桥上,并具 有一个以veth开头的唯一名字,如veth1234;
- 容器一端的虚拟接口将放到新创建的容器中,并修改名字作为eth0。这 个接口只在容器的命名空间可见;
- 从网桥可用地址段中获取一个空闲地址分配给容器的eth0(例如 172.17.0.2/16),并配置默认路由网关为docker0网卡的内部接口docker0 的IP地址(例如172.17.42.1/16)。
一般情况下,Docker创建一个容器的时候,会具体执行如下操作:
8.2 docker的网络模式
安装docker的时候, 它会自动创建四个网络, host, container, bridge, none, 除了这些, docker还支持自定义网络
镜像:busybox集成了一百多个Linux的工具箱
<