玖叶教程网

前端编程开发入门

IT工程师都需要掌握的容器技术之Docker容器网络上

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。

上篇文章我们讲解了Docker的容器管理主要涉及到容器的一些基本操作与日常运维需要用到的命令,不知道小伙伴们对这些命令是否已经掌握,如有遗忘可以到上篇文章进行复习回顾。

今天这篇文章我们将讲解一下容器原生网络的几种类型以及如何创建这些网络,由于容器网络的内容比较多我们准备分上下两个部分来讲解,下面我们就一起来学习吧!

01 Docker网络

Docker容器在安装好后会默认的创建三个网络,我们可以用如下命令进行查看

1. # 查看容器全部网络  
2. docker network ls  

我们现在来逐一了解一下这三个网络类型。

02 none网络

none网络是指容器创建后不会桥接到任何网络,容器除了lo接口外不会创建任何网卡接口,我们先来看看none网络的一些详细配置信息,具体如下:

1. # 查看网络配置信息   
2.  docker network inspect 网络名称  

我们创建容器test1同时将其网络类型设置为none,具体操作如下

1. # 创建容器test1网络类型设置为none   
2. docker container run --name test1 –hostname test1 --network none \  
3.    -itd ubuntu /bin/bash  

该网络类型的容器主要实现网络隔离,对安全性要求高的且需要完全隔离的应用可以使用none网络。给容器配置none网络类型后如果有再接入网络需求可以使用如下命令将容器加入到其它网络中

1. # 将test1容器从网络none中断开  
2. docker network disconnect none test1  
3.   
4. # 将test1容器重新连接到bridge网络中  
5. docker network connect bridge test1  

03 host网络

host网络类型是将容器共享主机网络栈,容器的网络配置与主机网络配置一模一样,在容器中可以看到主机所有的网络信息。我们来看看host网络的配置信息具体如下:

现在我们重新创建一个容器test2将其网络类型设置为host,具体操作如下

1. # 创建容器test2,将test2网络类型设置为host  
2. docker container run --name test2 --hostname test2 --network host -it ubuntu /bin/bash  

使用docker host网络最显著的一个优点就是性能,在容器需要有较高的网络传输效率的场景下可以选择host网络,同时host网络支持跨主机的docker容器的互相通信。但在使用host网络后需要时刻关注主机网络的端口使用情况,需要避免网络端口的冲突,主机使用了的端口容器就不要再使用。

04 Bridge网络

bridge网络即桥接网络,docker安装后会自动创建一个docker0的linux bridge,我们创建容器如果不指定任何网络类型则容器自动桥接到该网络,我们可以通过如下命令查看该桥接网络。

同上面一样我们也来看看bridge网络的配置信息

现在我们创建一个容器test3网络类型指定为bridge具体操作如下

1. # 创建test3容器,这边不指定网络类型则容器会自动桥接到bridge网络上  
2.  docker container run --name test3 --hostname test3 -it ubuntu /bin/bash  

05 自定义网络

docker除了安装时自动创建的none、host、bridge这三个网络外,其实还可以自定义网络,docker为自定义网络提供了三种驱动分别为bridge、overlay和macvaln。其中overlay与macvlan是跨主机网络的通信下面章节我们详细进行讲解。

创建自定义网络的命令如下所示:

1. # 创建容器自定义网络  
2.  docker network create [args] 网络名称 

该命令一般跟如下参数

1)-d 指定自定义网络的驱动,驱动包含bridge、overlay和macvaln。

2)--subnet 指定自定义网络的DHCP地址池网段

3)--gateway 指定自定义网络的网段网关

现在我们创建一个net1网络,驱动类型为bridge,并指定网段为192.168.200.0/24,网关指定为192.168.200.254具体操作如下:

接下来我们创建容器test4与test5桥接到网络net1,同时test5指定要分配的地址,具体操作如下:

此时容器test4与容器test5可以互相通信的,同时容器内通过nat也可以与外部网络进行通信,但外部网络不能主动对内部容器进行访问,若要访问需要在创建容器时指定端口进行NAT映射(具体命令可以查看我们前面发布的容器技术文章)。

06 总结

以上就是我们Docker容器网络上的全部内容,容器网络下主要讲解不同宿主机间容器网络的通信,涉及到Docker Overlay与Macvlan等网络解决方案,请大家保持关注。如果喜欢请不要忘了点赞、关注与转发哦!

--END--

@IT管理局专注计算机领域技术、大学生活、学习方法、求职招聘、职业规划、职场感悟等类型的原创内容。期待与你相遇,和你一同成长。

相关文章推荐:


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言