docker里好玩的插件 docker 三种网络插件

   日期:2024-12-27    作者:gpzhang6688 移动:http://3jjewl.riyuangf.com/mobile/quote/65904.html


Docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动来进行网络的容器管理。如果需要用户还可以自定义网络驱动插件进行Docker容器的网络管理
1、Docker默认网络管理
在进行Docker安装时,docker就会自动创建三种网络。客户端可以通过网络管理指令进行查看具体操作指令如下:


从上图可以看出,Docker中默认的三种网络分别为bridge、host、和none,其中名为bridge的网络就是默认的bridge驱动网络,也是容器创建时默认的网络管理方式,配置后可以与宿主机通信从而实现与互联网通信功能,而host和none属于无网络,容器添加到这两个网络时不能与外界网络通信。

下面通过一个实例来演示默认的bridge网络管理方式,其执行过程如下:

(1)创建并启动容器。在终端窗口中执行如下指令。


(2)使用网络查看指令查看网络详情,具体操作指令如下:


2、自定义网络介绍

虽然Docker提供的默认网络的使用比较简单,但是为了保证各容器中应用的安全性,在实际开发中更推荐使用自定义的网络进行容器管理。

在Docker中,可以自定义bridge网络、overlay网络,也可以创建network plugin(网络插件))或者远程网络以实现容器网络的完全定制和控制。接下来将分别针对这几种自定义网络进行讲解。

2.1 Bridge networks (桥接网络)

为了保证容器的安全性,我们可以使用基F bridge的驱动创建新的bridge网络,这种基于bridge驱动的自定义网络可以较好地实现容器隔离。
需要说明的是,这种用户自定义的基于bridge 驱动的网络对于单主机的小型网络环境管理是一个不错的选择,但是对于大型的网络环境管理( 如集群)就需要考虑使用自定义overlay集群网络。

2.2 Overlay network in swarm mode (Swarm集群中的覆盖网络)

在Docker Swarm集群环境下可以创建基于overlay驱动的自定义网络。为了保证安全性,Swarm集群使自定义的overlay网络只适用于需要服务的群集中的节点,而不会对外部北或者Docker主机开放。

2.3 Custom network plugins (定制网络插件)

如果前面几种自定义网络都无法满足需求时,就可以使用Docker提供的插件来自定义网络驱动插件。自定义网络插件会在Docker进程所在主机上作为另一个运行的进程。

自定义网络驱动插件与其他插件遵循相同的限制和安装规则,所有插件都使用Docker提供
的插件API,并且有一个包含安装、启动、停止和激活的生命周期。由于自定义网络插任使用较少,所以读者只需了解即可。

3、自定义bridge网络
3.1创建自定义网络
在Docker主机上可以使用docker network create指令来创建网络,具体操作指令如下:

执行上述指令可以创建一个基于bridge驱动的名称为isolated_nw的网络。其中–driver用于指定网络驱动类型,isolated_nw就是新创建的网络名称,需要说明的是,–driver bridge可以省略,省略时Docker会默认使用基于bridge驱动来创建新的网络。

创建完网络后,可以使用docker network ls指令查看创建的网络是否成功,


从上图看出,新创建的isolated_nw网络已经在列表中展示出来,这说明新的bridge网络创建成功。除了docker network ls指令外,还可以使用docker network inspect指令查看新建网络的详细信息。


3.2使用自定义网络启动容器

自定义网络创建成功后,就可以使用该网络启动一个容器,具体操作指令如下:

使用docker inspect nwtest指令可以查看启动后的容器网络详情,来核查其网络管理方式,


3.3为容器添加网络管理

名为nwtest的容器使用的只有自定义的isolated_nw一种网络管理方式,我们还可以继续为该容器添加其它网络管理方式,具体操作指令如下:


3.4断开容器网络连接

容器可以连接网络,也可以断开网络。这里断开nwtest容器的自定义网络isolated_nw为例进行演示,断开网络连接的指令如下:


3.5移除自定义网络

当不再需要某个网络之后,,可以将该网络移除,但在移除网络之前,一定先将所有与改网络连接的容器断开


4、容器之间的网络通信

4.1创建容器

(1)创建两个使用bridge网络的容器,具体操作指令如下:


执行上述指令后,会创建两个名为container1和container2的容器,同时他们都是使用默认的bridge进行网络管理的。

(2)创建一个使用自定义的isolated_nw网络(需要预先创建)的容器,具体操作指令如下:

(3)为container2容器新增一个自定义的isolated_nw网络连接,具体操作指令如下:


4.2容器地址查看

查看各个容器的网络地址。

进入container2容器,具体操作指令如下:




4.3容器通信测试

首先,使用docker attach container1指令进入container1容器内部,使用ping指令连接container3来查看是否能够通信,


从图可看出在container1内部不管是使用“ping -w 4 IP”还是“ping -w 4 容器名称”的指令都无法连通container3.这也就验证了两个容器不在同一个网络环境下,无法通信的判断。接着,使用docker attach container2指令进入container2容器内部,使用容器IP分别连接container1和container3进行通信测试,效果如下图所示:



特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号