初识docker中的网络与数据管理

初识docker中的网络与数据管理

知识回顾:

Docker默认使用bridge(单主机)和overlay(可跨主机互联)两种网络驱动来进行容器的网络管理。用户还可以自定义网络驱动插件进行Docker容器的网络管理。

一.Docker默认网络管理

(1)查看Docker中的所有网络

docker是安装在ubantu系统中的
#可以看见Docker中默认的网络是bridge.host和none
(2)创建并启动容器
在这里插入图片描述
#创建一个名为networktest的容器,基于的镜像是ubantu
(3)使用网络查看指令查看bridge网络详情
在这里插入图片描述
在这里插入图片描述
#上述指令用于核查名为Bridge的网络详情,可以看到信息中指明了该网络的详细信息,包括了使用了默认bridge网络管理方式启动的名称为networktest的容器

二.自定义bridge网络

(1)创建自定义网络,并查看
在这里插入图片描述
#创建一个基于bridge驱动的名为isolated_nw的网络,创建完成后,可以使用docker network ls指令查看创建的网络是否成功
(2)使用创建的isolated_nw网络启动一个名为nwtest的容器,并通过docker inspect nwtest查看启动后的网络详情

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#nwtest容器使用的就是自定义的isolated_nw网络容器进行网络管理的
(3)为容器添加网络管理,并通过docker inspect nwtest查看该网络详情
在这里插入图片描述
在这里插入图片描述
(4)断开容器网络连接,在查看网络详情
在这里插入图片描述
在这里插入图片描述
(5)移除自定义网络,查看是否移除成功
【前面已经将容器与该网络断开,所以这里直接移除该自定义网络】
在这里插入图片描述
在这里插入图片描述

三.容器之间的网络通信

(1)创建容器【使用默认的bridge网络的容器】
在这里插入图片描述
(2)创建一个使用自定义的isolated_nw网络的容器
在这里插入图片描述
(3)为container2容器新增一个自定义的isolate_nw网络连接
在这里插入图片描述
(4)容器地址查看【这里需要先查看各个容器的网络地址,进入container2容器,使用ifconfig指令查看当前容器被动态分配的ip地址】
在这里插入图片描述
在这里插入图片描述
#接下来分别进入容器container1.container3并通过ifconfig指令查看对应容器的ip地址
在这里插入图片描述
在这里插入图片描述
(5)容器通信测试
【使用使用docker attach container1进入container1容器内部,使用ping命令指令进入链接container3来查看是否能够通信】

#进入container1容器,ping不通通container3的ip地址和容器名,因为它们不是相同的网络类型【container1是bridge网络,container3是自定义网络】
在这里插入图片描述

【进入container2容器,ping通container3的ip地址】
在这里插入图片描述
【进入container2容器,ping通container1的ip地址】
在这里插入图片描述
【在container2容器内部使用容器名称分别连接container1和container3进行通信测试】
#进入container2容器,ping通container1容器名:
在这里插入图片描述
#进入container2容器,ping通container3容器名:
在这里插入图片描述
通过前面测试,我们可以得到一个结论:不同容器之间想要相互通信必须在同一个网络环境下,使用默认bridge网络管理的容器可以使用ip进行通信,但无法使用容器名称进行通信;而使用自定义网络管理的容器则同时可以使用容器ip和容器名称进行通信。

四.Dcoker Swarm集群的搭建

1.环境搭建
准备3台ubuntu系统主机,分别是manger1【管理节点】.worker1.worker2【从节点】,每台机器上都需要安装docker并且可以连接网络,并有固定的ip地址【manager1:192.168.197.143;worker1:192.168.197.144;worker2:192.168.197.145】
#配置网络环境
#管理节点manager
在这里插入图片描述
#更改主机名
在这里插入图片描述
#添加映射
在这里插入图片描述
#重启主机,查看网络配置是否生效
在这里插入图片描述
#工作节点worker1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#更改主机名在这里插入图片描述
#添加映射
在这里插入图片描述
#重启主机,查看主机名配置是否生效
在这里插入图片描述
在这里插入图片描述
#工作节点worker2
在这里插入图片描述
#更改主机名
在这里插入图片描述
#添加映射
在这里插入图片描述
#重启主机,进行验证
在这里插入图片描述
2.创Docker Swarm集群
(1)创建Dokcker Swarm集群【在manager1主机上】

在这里插入图片描述
//集群创建成功,默认manager1为管理节点

#查看集群节点信息【这时只有一个管理节点manager1】

在这里插入图片描述
#集群中添加工作节点【利用远程管理工具x-shell远程登陆manager1.worker1.worker2主机,方便操作】,如图:
在这里插入图片描述
#向worker1中加入工作节点
在这里插入图片描述
#向worker2中加入工作节点
在这里插入图片描述
#再次在集群管理节点上使用docker node ls 指令查看集群节点信息
在这里插入图片描述
//此时集群真正搭建成功,含有一个管理节点,两个工作节点

3.向Docker Swarm集群部署服务
(1)从Docker Hub中心仓库拉取自带的alpine镜像
在这里插入图片描述
(2)将镜像部署到集群服务中去
在这里插入图片描述
(3)查看Docker Swarm集群中的服务
#在管理节点通过docker service ls查看当前集群中的服务列表信息
在这里插入图片描述
#使用docker service inspect指令,查看部署服务的具体详情
在这里插入图片描述
#使用docker service ps 指令查看服务在集群节点上的分配和运行情况
在这里插入图片描述
4.更改Docker Swarm集群服务副本的数量
(1)在管理节点manager1上,更改服务副本的数量
在这里插入图片描述
(2)使用docker service ps 指令查看服务在集群节点上的分配和运行情况
在这里插入图片描述
在这里插入图片描述
5.删除服务并查看是否删除成功
在这里插入图片描述
//这里显示删除成功
6.访问服务
(1)在集群管理节点manager1上,查看网络列表
在这里插入图片描述
(2)在集群管理节点manage1上创建以overlay为驱动的自定义网络
在这里插入图片描述
(3)在集群管理节点manage1上,再次部署服务
在这里插入图片描述
(4)在集群管理节点manage1上,使用docer service ps my-web指令查看服务的两个副本运行情况
在这里插入图片描述
(5)外界访问服务【本机浏览器输入主机IP地址,查看是否成功出现欢迎界面】

在这里插入图片描述

五、Volumes 数据卷管理

1.创建并管理数据卷
(1)创建数据卷
在这里插入图片描述
(2)查看数据卷
在这里插入图片描述(3)核查数据卷
在这里插入图片描述(4)删除数据卷
在这里插入图片描述
2.启动容器并加载数据卷
(1)查看本机容器和数据卷
在这里插入图片描述
#发现docker上有容器和数据卷,将已存在的容器和数据卷删掉
在这里插入图片描述
#再次查看,已经没有任何容器和数据卷
在这里插入图片描述
#确认查看本机Docker文件系统中的容器和数据卷
在这里插入图片描述
#也可以使用-v参数挂载数据卷
在这里插入图片描述
(4)再次查看本机容器和数据卷
在这里插入图片描述
(5)检查容器详情
在这里插入图片描述
(6)再次确认本机Docker文件系统中容器和数据卷
在这里插入图片描述
六.出现的问题及解决办法:

问题1.使用自定义网络启动容器时出现问题,如图:
在这里插入图片描述
解决办法:网络出现问题,尝试ping百度,出错了,如图:
在这里插入图片描述
#打开虚拟机设置,将网络连接从桥接模式改成NAT模式,如图:
在这里插入图片描述
#再主机上ping百度,成功,如图:
在这里插入图片描述
#使用自定义网络启动容器,成功执行:
在这里插入图片描述
问题2.创建并启动容器时出错
在这里插入图片描述
解决办法:检查了一下,发现是ubuntu敲成ubuntu了,修改重新执行命令,成功执行:
在这里插入图片描述
问题3:为container2容器新增一个自定义的isolate_nw网络连接
在这里插入图片描述
解决办法:检查脚本,发现命令敲错了,重新执行,成功运行:
在这里插入图片描述
问题4:进入容器container2时出现问题,如图:
在这里插入图片描述
解决办法:从一个容器出来后,容器会被停掉,再次进入的话要先启动才能进入,如图:
在这里插入图片描述
问题5:容器通讯测试的时候,container2ping从container3时用ip地址来ping没问题,用容器名称来的话有问题,显示“bad address”,如图:
在这里插入图片描述
解决办法:暂无,其他同学也是相同的情况,按书上说的不应该错的

问题6:X-shell连接manager1主机时,连接不上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决办法:CSDN上查找,找到解决办法,如图:
在这里插入图片描述
#当我们设置用户名为root的时候,肯定是不行的,要把用户名设置为虚拟机的普通用户,大家都有自己的普通用户的名字,我的普通用户的名字是rzw,之前输入root【超级用户】和manager1【主机名】都是错误的,如图:

在这里插入图片描述
#再创建一个会话,输入登陆的用户名是rzw,成功登陆,如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题7:manager1上创建集群时出现问题,如图:
在这里插入图片描述
解决办法:查看课本,发现没有敲空格再指定位置,重新执行命令,成功执行,如图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43306493/article/details/90636896