网站首页> 文章专栏> 【Docker网络】容器之间的网络是如何连通的?
【Docker网络】容器之间的网络是如何连通的?
路人王 天津 2021-07-29 119 0 0

一、Docker0网络详解

1.1 宿主机获取IP

l0:本机地址
eth0:阿里云内网地址
docker0:docker的网卡
在这里插入图片描述

1.2 docker如何处理容器之间的网络的?

在这里插入图片描述

1.3 启动一个tomcat01查看docker容器内部的IP地址

# 1.启动一个tomcat
docker run -d -P --name tomcat01 tomcat
# 2.查看容器内部的IP地址
docker exec -it tomcat01 ip addr

在这里插入图片描述

1.4 linux能否ping通docker的网络?

在这里插入图片描述 docker0原理
只要安装了docker就会有一个docker0网卡,采用的桥接模式,使用了evth-pair技术!

1.5 查看linux的网卡IP

在这里插入图片描述

1.6 再次启动一个tomcat02,docker容器测试,查看linux的IP网络

# 1.启动一个tomcat02
docker run -d -P --name tomcat02 tomcat
# 2.查看容器内部的IP地址
docker exec -it tomcat02 ip addr

在这里插入图片描述

1.7 进入tomcat02的docker查看容器网络IP

在这里插入图片描述

1.8 evth-pair技术【容器的网卡连接技术】

发现这些网卡都是docker带来的成对的虚拟接口,这就是evth-pair技术,用来连接虚拟网络设备的

1.9 tomcat01是否可以ping通tomcat02???

在这里插入图片描述 答案:容器之间是可以ping通的,容器之间的通信就是这样的。

二、容器之间的通信机制 veth-pair

在这里插入图片描述 答案: tomcat01和tomcat02是公用的一个路由器,就是linux中产生的虚拟网卡docker0 在这里插入图片描述 docker网络最多可以分配65535个网络。

三、docker容器互联 --link【不建议使用,实质修改hosts】

试想一下,编写了一个微服务,database url = ip;项目不重启,数据库IP换掉了,可不可以用名字进行访问容器
在这里插入图片描述 发现并1 不能ping通!!!!!

3.1 如何ping名字?

在这里插入图片描述 反向可以ping通吗?????????????????
答案:不可以,需要在02中再次配置一下 hosts在这里插入图片描述

四、docker自定义网络

4.1 查看所有的docker网络

在这里插入图片描述 网络模式
bridge: 桥接 【自定义,也是使用桥接模式】 none:不配置
host:和宿主机共享网络
container:容器互联【用的少,局限大】

4.2 自定义网络

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

4.3 启动两个容器,测试自定义网络

在这里插入图片描述 在这里插入图片描述

4.4 自定义好处【可以直接通过容器名字ping通】

在这里插入图片描述 docker0没有实现这个功能,需要使用--link命令
自定义网络可以保证创建的集群的网络健康

4.5 docker0的网络 与 自定义网络连通【connet命令】

在这里插入图片描述 如何连通呢????????????????????????????
在这里插入图片描述 测试连通网络,其实就是把tomcat01放到了mynet网络下。
在这里插入图片描述 一个容器两个Ip
在这里插入图片描述 可以ping通
在这里插入图片描述

评论

评论  分享  打赏