内容正文:
课程名称
第7章 容器网络
计划学时
4学时
内容分析
本章主要介绍容器网络管理、none网络、host网络、bridge网络、container网络、多节点容器网络
教学目标
与
教学要求
要求学生了解容器网络的多种工作方式、熟悉容器网络知识、掌握Docker的原生网络知识、熟悉Docker自定义网络
教学重点
none网络、host网络、bridge网络、container网络、多节点容器网络
教学难点
none网络、host网络、bridge网络、container网络、多节点容器网络
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(容器网络管理、none网络、host网络、bridge网络)
回顾内容
1.介绍本书,引出本课时的主题
当企业开始大规模使用Docker时,工程师就需要掌握很多关于网络的知识。Docker作为目前流行的轻量级容器技术,有很多令人称道的功能,如前面介绍的Docker镜像管理。然而,Docker也有很多不完善的地方,网络方面就是Docker比较薄弱的部分。作为初学者很有必要深入了解Docker的网络知识,以适应更高的网络需求。
2.明确学习目标
(1) 能够了解容器网络概述
(2) 能够掌握查看容器网络
(3) 能够掌握创建容器网络
(4) 能够掌握删除容器网络
(5) 能够掌握容器网络详细信息
(6) 能够掌握配置容器网络
(7) 能够掌握容器网络连接与断开
(8) 能够掌握none网络
(9) 能够掌握host网络
(10) 能够掌握bridge网络
知识讲解
· 容器网络概述
容器网络主要用于容器与容器、容器与外网、容器与宿主机之间的通信及互联。宿主机接通外网,再与容器之间搭建网桥,使容器与宿主机网络联通,以达到容器连接外网的目的,如图所示。
用户可以创建一个或多个网络,一个容器可以加入一个或多个网络。同一个网络中的容器可以相互通信,不同网络中的容器相互隔离。在创建容器之前,用户可以先创建网络,然后再将容器添加到网络,即创建容器与创建网络是分开的。
Docker的本地网络实现是利用了Linux的Network Namespace和虚拟网络设备(主要是Virtual Ethernet Pair),在本地主机和容器内分别创建一个虚拟接口,并使它们彼此连通。Docker使用Linux的Namespace技术来进行资源隔离,例如,PID Namespace隔离进程、Mount Namespace隔离文件系统、Network Namespace隔离网络等。Network Namespace为容器提供了独立的网络环境。
Virtual Ethernet Pair简称VETH Pair,是一对端口,所有从这对端口进入的数据包都将从另一端出来,反之也是一样。
· 查看容器网络
用户要对容器网络进行配置,首先要熟练掌握命令,下面详细介绍容器网络管理命令。
查看容器网络的命令格式为:
参数介绍如下。
-f, --filter filter
过滤条件。
--format string
格式化打印结果。
--no-trunc
不缩略显示。
-q, --quiet
只显示网络对象的ID。
· 创建容器网络
创建网络的命令格式为:
参数介绍如下。
-d, --driver string
指定网络模式(默认为bridge)。
--subnet strings
指定子网网段。
--ip-range strings
指定容器的IP地址范围,格式同subnet参数。
--gateway strings
子网的IPV4或IPV6网关。
· 删除容器网络
下面将讲解删除容器网络的操作,在生产环境中建议再三确认之后再执行删除操作。删除容器网络与删除容器同样都需要在命令中添加rm参数。
删除容器网络的命令格式为:
· 容器网络详细信息
查看容器网络详细信息的命令格式为:
参数介绍如下。
-f, --format string
使用给定的模板格式化输出。
· 配置容器网络
配置容器网络就是为用户创建的容器添加网络配置,只需要在运行容器的命令中添加指定的网络参数。
配置容器网络的命令格式为:
· 容器网络连接与断开
容器网络连接与断开的命令格式为:
· none网络
顾名思义,none网络就是什么都没有的网络。在这种模式下,Docker容器网络拥有自己的网络命名空间,但并不为Docker容器进行任何网络配置。也就是说,这个模式下的容器除了本地环回接口,没有其他任何网卡、IP、路由等信息,如图所示。
没有网络配置的情况下,Docker开发者才能在此基础上做其他无限多可能的网络定制开发。用户可以自己为Docker容器添加网卡、配置IP地址等。这也正体现了D