【无标题】Docker网络通信(二)

目录

Host模式

Host模式的使用 

Container网络通信模式 

 Container模式的使用

None模式 

 None模式的使用


Host模式

1.  在使用Host模式时,容器和宿主机共享一个网络命名空间,容器的IP地址与宿主机的IP地址相同。如果宿主机具有公网的IP地址,则容器也拥有公网的IP地址。即这时容器可以直接使用宿主机的IP地址与外界通信,且容器内服务的端口也可以直接使用宿主机的端口,无须任何的转换。

2.  由于Host模式下不再需要宿主机的转发,因此性能得到了极大的提高。图 4-11 说明了Host模式的工作机制。

Host模式的使用 

1.使用Host模式来创建容器,如以下命令所示

[root@node1 ~]# docker run -it --network=host busybox /bin/sh

对比一下容器内的网络和宿主机的网络信息,如下图所示,可以发现,容器与宿主机共享了同一个网络命名空间,即容器使用了宿主机的网络配置信息。

容器的网络信息:

宿主机的网络信息:

尽管使用Host模式可以很方便的通过Localhost或者127.0.0.1实现容器与宿主机的相互访问并且性能也比较好,但是这种模式存在以下两种问题。

1. 由于容器使用了宿主机的网络环境,因此网络环境的隔离性功能被减弱,从而造成宿主机和容器争用网络资源。容器本身也不再拥有所有的网络资源,而是与宿主机共享网络资源。

2.  宿主机和容器使用了相同的IP地址,这不利于网络的配置和管理。

Container网络通信模式 

在Container模式下,容器之间会共享网络环境,即一个容器会使用另外一个容器的网络命名空间。因此,在这种模式下,容器之间可以通过Localhost 或者 127.0.0.1 进行相互间访问,从而提高了传输的效率。

Container模式在一些特殊场景中非常有用,例如在 Kubernetes中创建Pod时,会首先创建Pod的基础容器;而Pod中的其他容器则采用container 模式与基础容器进行通信,Pod中的各个容器采用Localhost或者127.0.0.1进行通信,从而将Pod中的所有容器形成一个逻辑整体。

Container 模式的工作逻辑如4-13所示:

 Container模式的使用

(1).使用busybox的镜像创建一个容器A,并查看容器的网络信息,代码如下:

[root@node1 ~]# docker run -it busybox /bin/sh
/ # ifconfig

(2).开启一个新的命令行仓库查看容器A的ID,从下图中可以看到容器A的ID是d8523317cb37 

3).开启一个新的命令行窗口,并使用container模式创建一个新的容器B。代码如下所示

[root@node1 ~]# docker run -it --network=container:d8523317cb37 busybox /bin/sh
/ # ifconfig

其中,参数--network用于指定新容器使用哪一个容器的网络信息,这里指定的是我们第一步所创建的容器A。 

(4).查看刚才所创建的容器B的网络信息,如下图所示 

(5).对比两个容器之间的网络信息可以发现, 容器A与容器B使用了相同的网络命名空间,这是因为在创建容器B时使用了Container模式。使得容器B不再创建自己的网络命名空间,而是直接使用容器A的网络命名空间

None模式 

none模式下的容器具有独立的网络命名空间,但不包含任何网络配置,只能通过Local Loopback 网卡与容器进行通信,即只能使用Localhost或者127.0.0.1访问容器。

在none模式下需要手动进行网络配置,例如使用pipwork工具指定容器的ip地址等。

 None模式的使用

(1).使用None模式创建一个容器,代码如下所示

[root@node1 ~]# docker run -it --network=none busybox /bin/sh

由于none模式不包含任何网络配置,所以在其网络配置信息中就包含一个127.0.0.1的ip地址。如下图所示

   至此,Docker的四种网络通信已经介绍完毕了 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值