Docker中的网络与数据管理(八)
学习目标
l 掌握 Docker的网络管理
l 掌握 Docker Swarm集群的使用
l 掌握 Volumes数据卷的使用
一.Docker的网络管理
1.默认网络管理
在进行Docker安装时,Docker就会自动创建三种网络(bridge、host、none)。客户端可以通过网络管理指令进行查看,具体操作指令如下。
$ docker network ls #列举docker中所有网络
图中名为bridge的网络就是默认的bridge驱动网络,也是容器创建时默认的网络管理方式,配置后可以与宿主机通信从而实现与互联网通信功能,而host和none属于无网络,容器添加到这两个网络时不能与外界网络通信。
- 1.创建并启动容器。
$ docker run -itd --name=networktest ubuntu
上述指令在后台启动了一个镜像名称为 ubuntu 的容器,并为启动后的容器命名为networktest。 - 2.使用网络查看指令查看网络详情。
$ docker network inspect bridge
上述指令用于核查名称为bridge的网络详情,需要指明网络名称或者网络ID。
从图中可看出,执行指令后就会显示出bridge网络的所有详细信息,其中就包括了使用默认的bridge网络管理方式启动的名称为networktest的容器。
需要注意的是,这里介绍的三种网络bridge、host 和none都是在非集群环境下Docker提供的默认网络,而在Docker Swarm集群环境下,除了这三种默认网络外,Docker 还提供了docker_gwbridge和ingress两种默认网络。
2.自定义网络介绍
为了保证各种容器中应用安全性,在实际开发中更推荐使用自定义的网络进行容器管理。在Docker中可以自定义bridge网络、overlay网络,也可以创建network plugin(网络插件)或者远程网络以实现容器网络的完全定制和控制。
- 1.Bridge networks (桥接网络)这种基于bridge驱动的用户自定义网络可以较好地实现容器隔离。需说明,这种网络对于单主机的小型网络环境管理是一个不错的选择,但对大型的网络环境管理(如集群)就需要考虑使用自定义overlay集群网络.
- 2.Overlay network in swarm mode ( Swarm集群中的覆盖网络)在Docker Swarm集群环境下可以创建基于overlay 驱动的自定义网络。为了保证安全性,这种只适用于需要服务的群集中的节点,而不会对外部其他服务或者Docker主机开放。
- 3.Custom network plugins (定制网络插件)若前面几种自定义网络都无法满足需求时,就可以使用Docker提供的插件来自定义网络驱动插件。自定义网络插件会在Docker进程所在主机上作为另一个运行的进程。与其他插件遵循相同的限制和安装规则,所有插件都使用Docker提供的插件API,并且有一个包含安装、启动、停止和激活的生命周期。
3.自定义bridge网络(针对非集群环境下基于bridge驱动的自定义网络)
- 1.创建自定义网络。
在Docker主机上可以使用docker network create指令来创建网络。
$ docker network create --driver bridge isolated_nw
网络的名称为isolated_nw。其中–driver(可简写为-d)用于指定网络驱动类型,isolated _nw就是新创建的网络名称。需要说明的是,–driver bridge可以省略,省略时Docker会默认使用基于bridge 驱动来创建新的网络。
创建完网络后,可用$ docker network ls指令查看创建的网络是否成功。还可以使用docker network inspect指令查看新建网络的详细信息。
- 2.使用自定义网络启动容器
自定义网络创建成功后,就可以使用该网络启动一个容器。创建的容器名为nwtest,–network参数指定该容器网络连接为自定义的isolated_nw。
$ docker run --network=isolated_nw -itd --name=nwtest busybox