Docker_02_网络

@

Docker网络

Docker0

Docker安装时,默认在主机上安装Docker0网桥

1)只要安装了Docker,就会有Docker0网卡(桥接模式)

2)容器启动时若没有指定网络模式下,都默认挂载到Docker0网桥上

3)属于Docker0的容器被启动时,Docker0会给该容器分配一个IP地址和网卡

4)通过Docker0就可实现容器和主机、容器和容器之间的互通(evth-pair技术)

5)Docker0特点:默认模式,域名不能访问(必须通过IP地址)

//容器被删除,对应IP地址和网卡也会被自动删除


缺陷:使用容器的IP做硬编码,若容器重启,则无法连接

//重启后,Docker会改变容器的IP


如:查看Docker0网卡相关信息
在这里插入图片描述


如:创建两个Tomcat容器,观察网卡变换情况

1)ip addr查询主机网卡信息
在这里插入图片描述
2):启动一个Tomcat01容器,并查看其网卡信息
在这里插入图片描述
3)再次ip addr查询主机网卡信息
在这里插入图片描述
4)再启动一个Tomcat02容器,并查看主机网卡信息
在这里插入图片描述
5)再次ip addr查询主机网卡信息
在这里插入图片描述
//宿主机中网卡以eth0为前缀命名,容器中网卡以veth为前缀命名


如:Docker0通过evth-pair技术实现容器可访问外网
在这里插入图片描述

evth-pair

evth-pair:一对虚拟设备接口(总是成对出现)

1)一个连着协议,一个彼此相连(实现设备之间的桥梁)


如:续容器之间的通信就通过Docker0和evth-pair技术
在这里插入图片描述


如:容器Tomcat02通过Docker0去Ping容器Tomcat01的IP地址
在这里插入图片描述


如:新建容器Tomcat03去Ping容器Tomcat02
在这里插入图片描述

//容器之间互相Ping容器名是Ping不通的

容器链接

--link选项:实现容器之间的单向访问

格式:--link 被链接容器名:链接别名

1)本质:配置容器的hosts文件,使访问容器名时自动访问该地址(映射)

2)链接别名可省略,默认为被链接容器名

3)仅链接容器能主动访问被链接容器,且被链接容器不需向主机开放端口

4)仅能链接同一主机内的容器


如:新建容器Tomcat04去Ping容器Tomcat02

1)Tomcat04容器ping容器Tomcat02,并查看Tomcat04的/etc/hosts
在这里插入图片描述
2)Tomcat02容器ping容器Tomcat04,并查看Tomcat02的/etc/hosts
在这里插入图片描述

//反向是ping不通的(除非同时配置)容器tomcat02去ping容器tomcat04

Docker Networking

Docker Networking:用于容器之间连接的网络

1)容器可跨越宿主机通信

//由于用户可以自行创建网络,也称自定义网络


network命令:Docker网络操作

指令格式:docker network 选项

选项 含义
ls 列出主机内所有网络信息
inspect 列出指定网络的具体信息
create 创建自定义网络(默认为bridge类型)
connect 将容器连接至指定网络
disconnect 断开容器与网络的连接
prune 删除未使用的网络
rm 删除指定一个或多个网络

如:查看当前主机Docker所有网络信息
在这里插入图片描述


create选项:创建自定义网络

格式:create 选项 选项值

选项 含义
--driver 指定网络模式(默认为:bridge)
--subnet 指定网络子网掩码
--gateway 指定网关

如:创建自定义网络mynet
在这里插入图片描述


如:新建容器tomcat05和tomcat06分配在同一网络下,两个容器互相ping

1)新建容器,分配网络,并互相ping
在这里插入图片描述
2)查看mynet网络配置文件
在这里插入图片描述

//记录了两个容器网络相关信息,所以同一网络下的容器是可相互Ping通的


connect选项:将容器连接至指定网络

格式:connect 选项 选项值

选项 含义
--alias 指定容器在该网络的别名
--ip 指定容器在该网络的IP

如:使用容器tomcat01去ping容器tomcat05

1)tomcat01容器ping容器tomcat05,在加入对方网络后,再ping一次
在这里插入图片描述

2)tomcat01属于Docker0网络,tomcat05属于mynet网络
在这里插入图片描述

//同一网络下的容器的/etc/hosts文件仅有该网络下的其他容器的域名和IP,且该文件会根据网络配置文件动态更新(即使容器重启,也仍可找到)

posted @ 2022-02-11 00:03  爱和可乐的w  阅读(38)  评论(0编辑  收藏  举报