今天继续给大家介绍Linux运维相关知识,本文主要内容是Docker网络类型详解。
一、Docker网络类型
在Docker中,容器的网络有四种模式,分别是None、Bridge、Container和Host。下面,我就来详细讲解一下这四种类型的网络模式。
二、None类型网络
None类型的网络,即没有网络,Docker容器不会设置容器内网络的任何信息,不会对网络进行任何配置,但是我们自己可以给该容器添加配置,给予其网络环境。
我们有时需要为容器网络分配一个静态的IP,使Docker容器处于和物理机同一个网段,这时我们可以先使用None类型的网络,然后自己选择网络信息。
在创建Docker容器时,我们可以使用–net=none来指定Docker容器处于None类型的网络中。
三、Bridge类型网络
Bridge类型的网络是Docker容器默认的网络类型,在这种模式下,Docker会为容器虚拟出一个网络,所有的Container容器都会分配一个处于这个网络的IP地址,不同的Container之间可以互相通信。
Docker容器的Brdige虚拟网络如下所示:
Bridge模式下的网络拓扑如下所示:
从上图中可以看出,Docker的“Bridge”与Vmware的“Bridge”根本不是一个类型的网络!实际上,Docker中的“Bridge”更类似于Vmware中的Nat类型的网络模式。并且,Docker容器对外网(互联网)的访问也是基于物理机的Nat机制实现的。在创建Docker容器时,我们可以使用–net=bridge指定Docker容器处于Bridge类型的网络中。注意:Bridge是Docker的默认网络类型,因此,即使我们不使用–net=bridge参数,该Docker容器的网络类型依然是Brdige
四、Container类型网络
在Container类型的网络中,多个Docker容器共享网络设备。我们在一个Docker容器运行之后,再运行其他的Docker容器时,可以使该容器与之前已经运行的Docker容器共享网络,即拥有同样的IP地址、网卡设备。两个容器之间可以通过环回地址网卡进行通信,并且在文件系统、进程表等方面实现隔离。处于同一个Container网络中的容器,对于端口的占用机制是先来先占用的模式,哪个容器占用该端口,该容器就可以使用该端口。
在创建Docker容器时,我们可以使用–net=container指定Docker容器处于Container类型的网络中。
五、Host类型网络
与Container类型的网络类似,在Host类型的网络中,Docker容器于物理机共享网络,拥有物理机的IP地址和网卡信息。同样的,在Host类型的网络模式中,Docker容器与物理机在文件系统、进程等方面是隔离的。例如,假如一个开启Web80端口服务的Docker容器处于Host类型的网络中(前提是该物理机没有先占用80端口),那么访问该容器只需要访问物理机IP地址即可。
在创建Docker容器时,我们可以使用–net=host指定Docker容器处于Host类型的网络中。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/124224875