Docker网络说明

一、docker网络常见模式(5种)

在这里插入图片描述
默认的有三个:
在这里插入图片描述
作用:
容器间的互联和通信以及端口映射
容器IP变动时候可以通过服务名直接网络通信而不受到影响

1、bridge模式

定义:Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。
在这里插入图片描述
在这里插入图片描述
第二幅图,是宿主机上查看ip配置的相关结果
我们可以看到有个docker0,这个网络存在
这个网络是在启动docker软件的时候,就会被创建的

所以,通过图1,我们就可以简单的理解
容器-docker0网络-宿主机ens32或ens33网络之间的关系

所以,容器间的网络交互,都是通过docker0网络间接实现的

2、host模式

定义:容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口。
直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换。
在这里插入图片描述
我们启动容器时选择这种模式,是无需指定端口映射的,因为使用的就是宿主机的端口和网络
所以,命令可以这么写:

docker run -d --network host --name tomcat83 billygoo/tomcat8-jdk8

访问方式:http://宿主机IP:8080/
因为tomcat的默认端口是8080
就可以简单的理解为,直接在宿主机上启动了一个tomcat,用的就是宿主机的网络。

3、none模式

不考虑

4、container模式

定义:新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。
在这里插入图片描述
这个模式的案例,无法使用tomcat镜像来演示
因为,tomcat启动默认端口是8080
于是,你两个容器公用一套网络端口,会导致端口冲突。
就简单的理解为,一台服务器上启动两个tomcat,都是8080端口,当然会报错冲突。

案例:

docker run -it                             --name alpine1  alpine /bin/sh
docker run -it --network container:alpine1 --name alpine2  alpine /bin/sh

alpine1容器内部:
在这里插入图片描述
alpine2容器内部:
在这里插入图片描述
由上面两幅图,可以看出,这两个容器,公用一个IP。
这种模式情况下,当alpine1容器被停止后
alpine2容器的网络将丢失,就等价于none模式,没有自己的IP网络可用了。
在这里插入图片描述

5、自定义网络模式

使用场景:
规划容器网络,我们根据自己的设计,创建对应的docker网络,然后,在启动容器时,指定这个网络
这样,就可以把N多的容器网络,进行网段划分,方便管理容器。
当容器被重启时,对应的容器IP可能会发生变化,所以,我们在实际中使用的时候,会采取服务名进行互相调用,这样,无论容器IP如何变化,都不会影响服务互相调用。

而这个时候,我们用模式1的情况下,ping 容器名,是无法ping通的,所以,这种情况,通过容器名
无法互相访问。

这个时候,自定义网络就体现出它的作用了!!!

创建自定义网络:

docker network create pzj_network

在这里插入图片描述
创建容器实例的时候,使用自己创建的网络:

docker run -d -p 8081:8080 --network pzj_network  --name tomcat1 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --network pzj_network  --name tomcat2 billygoo/tomcat8-jdk8

进入tomcat1容器,ping tomcat2
在这里插入图片描述
进入tomcat2容器,ping tomcat1
在这里插入图片描述
会发现,此时,可以通过容器名,进行互相ping通。

这样就做到了,容器和IP解耦,服务间可以通过容器名进行互相访问。

自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值