20.Docker技术入门与实战 --- 高级网络功能
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20.Docker技术入门与实战 --- 高级网络功能相关的知识,希望对你有一定的参考价值。
第20章 高级网络功能
20.1 启动与配置参数
1.网络启动过程
docker服务启动时会首先在主机上自动创建一个docker0虚拟网桥,实际上是一个linux网桥。网桥可以理解为软件交换机,负责挂在其上的
接口之间进行包转发。
同时,docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口。此后启动的容器内的网口也会自动分配一个该网段的地址。
当创建一个docker容器的时候,同时会创建一个veth pair互联接口。当向其中一个接口发送包时,另外一个接口自动收到相同的包。互联
接口的一端位于容器内,即eth0;另外一端在本地并被挂在到docker0网桥,名称也以veth开头。通过这种方式,主机可以与容器通信,容器之间
也可以互相通信。如此一来,docker就创建了在主机和所有容器之间一个虚拟共享网络。
20.2 配置容器DNS和主机名
docker服务启动后会默认启用一个内嵌的dns服务,来自动解析同一个网络中的容器主机名和地址。
容器运行时,可以在运行中的容器直接编辑/etc/hosts、/etc/hostname和/etc/resolve.conf文件,但修改是临时的。
20.3 容器访问控制
1.容器访问外部网络
容器默认指定了网关为docker0网桥上的docker0内部接口。docker0内部接口同时也是宿主机的一个本地接口。因此,容器默认情况下可以
访问到宿主机本地网络。如果容器想要通过宿主机访问到外部网络,则需要宿主机进行辅助转发。
2.容器之间的访问
容器之间相互访问需要两方面的支持:
1.网络拓扑是否已经连通。默认情况下,所有容器都会连接到docker0网桥上,这意味着默认情况下拓扑是互通的;
2.本地系统的防火墙软件iptables是否允许访问通过。这取决于防火墙的默认规则是允许(大部分情况下)还是禁止。
20.4 映射容器端口
以上是关于20.Docker技术入门与实战 --- 高级网络功能的主要内容,如果未能解决你的问题,请参考以下文章
21.Docker技术入门与实战 --- libnetwork插件化网络功能