天道酬勤,学无止境

Docker技术

(七)Docker网络和 overlay跨主机通讯

容器和宿主机、容器之间以及夸主机容器如何通讯呢?这就需要使用到Docker网络。在前面的介绍中我们在Dockerfile中通过EXPOSE参数来设置容器暴露的端口,让在docker run中使用-p来设置宿主机端口到容器端口的映射,这只是最简单的宿主机和容器通讯,同样使用宿主机IP:PORT方式可以让其他容器和该容器通讯,但是这样有个问题,首先应用程序需要对IP进行硬编码,其次容器每次重启IP都会变化,显然在生产环节中应该做到的尽可能的解耦,下面我们先看一下Docker网络的构成。查看网络设置启动docker服务就会产生一个docker0的虚拟网桥(多端口虚拟交换机)设备。veth*这个是启动一个容器就会产生一个这样的设备该设备与容器内的eth0虚拟网卡对应,这个veth*你可以理解为某个网桥上的接口,所以它只有MAC地址而没有IP地址,毕竟二层交换机网口是没有IP地址的,这个接口的另外一端就插在容器的网卡上,这个网卡有IP也有MAC(也可以理解为一根连在docker0上的网线,毕竟容器内的网卡和容器外的是一对,460就是容器外ID,459就是容器内网卡的ID)网桥在内核层连通了其他物理或者虚拟网卡。下面看一下docker run命令中和网络有关的参数:--dns=IP #指定DNS服务器 --dns-search=DOMAIN #指定搜索域 -h HOSTNAME

2021-06-01 22:10:20    分类:博客    网络   dns   networking   Docker技术