Docker中的网络与数据管理
一、Docker网络管理
Docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动来进行容器的网络管理,若又需要,可自行定义网络驱动插件进行Docker容器的网络管理
1、Docker默认网络管理
在进行Docker安装时,Docker会自动创建三种网络,如图
(1)创建并启动容器
在后台启动了一个镜像名称为ubuntu的容器,并为启动后的容器命名为networktest
(2)使用网络查看指令查看网络详情
2、自定义网络介绍
(1)Docker默认网络的问题
虽然Docker提供的默认网络的使用比较简单,但是为了保证各容器中应用的安全性,在实际开发中geng更推荐使用自定义的网络进行容器管理。
(2)Docker自定义网络介绍
在Docker中,可以自定义br网络、overlay网络,也可以创建network plugin(网络插件)或者远程网络以实现容器网络的完全定制和控制。
<1>Bridge networks(桥接网络)
为了保证容器的安全性,可以使用基于bridge的驱动创新的bridge网络,这种基于bridge驱动的自定义网络可以较好的实现容器隔离。
<2>Overlay network in swarm mode (Swarm集群中的覆盖网络)
基于overly驱动的自定网络,只适用于需要服务的集群中的节点,而不会对外部其他服务或者Docker主机开放。
<3>Custom network plugins(定制网络插件)
自定义网络插件会在Docker进程所在主机作为另一个运行的进程。
3、自定义bridge网络
(1)创建自定义网络
使用docker network ls指令查看创建的网络是否成功
(2)使用自定义网络启动容器
通过docker inspect mwtest指令可以查看启动后的容器详情
(3)断开容器网络连接
4、容器之间的网络通信
(1)创建容器
<1>创建两个使用默认的bridge网络的容器
<2>创建一个使用自定义的isolated_nw网络(需要预先创建)的容器
<3>为container2容器新增一个自定义的isolated_nw网络连接
(2)容器地址查看
在容器中查看网卡
分别进入容器1和容器3,通过ifconfig指令查看对应容器的IP地址
使用docker attach container1指令进入container1容器内部,使用ping指令连接container3来查看是否能够通信。
进入容器2,使用IP地址ping容器1和容器3
进入容器2,使用容器名ping容器1和容器3.
5、Docker Swarm使用
1、环境搭建
2、创建Docker Swarm集群
(1)在名为manger1的Docker机器上创建Docker Swarm集群
(2)在管理节点上,使用docker node ls 指令查看集群节点信息
3、向Docker Swarm添加工作节点
(1)启动另外两台Docker机器work1和work2,分别打开端口窗口,执行向集群中加入工作节点的指令。
(2)再次在集群管理节点上使用docker node ls指令查看集群节点信息
4、向Docker Swarm 集群部署服务
5、查看Docker Swarm集群中的服务
(1)在管理节点上使用docker node ls指令查看集群节点信息
(2)使用docker service inspect指令,查看部署的服务具体详情
(3)使用docker service ps指令查看指定服务在集群节点上的分配和运行情况
6、更改Docker Swarm集群服务副本数量
7、删除服务
8、访问服务
(1)在集群管理节点manager1上,执行docker network ls指令cha查看网络列表
(2)在集群管理节点manager1上,创建以overlay为驱动的自定义网络
(3)在集群管理jie'节点mangager1上,再次部署服务
(4)在集群管理节点manager1上,使用docker service ps my-web指令查看服务的两个服务副本运行情况。
(5)外界访问服务
6、Volumes数据卷使用
1、创建并管理数据卷
(1)创建数据卷
(2)查看数据卷
2、启动容器并加载数据卷
(1)查看本机容器和数据卷
(2)确认查看本机Docker文件系统中的容器和数据卷
(3)启动容器并挂载数据卷
使用--mount参数挂载
使用-v参数挂载
(4)再次查看本机容器和数据卷列表
(5)检查容器详情
(6)再次确认本机Docker文件系统中的容器和数据卷