docker操作以及swarm集群操作

一:制作一个基础镜像(包含JDK和tomcat),并将项目与镜像一起,以集群的方式启动
1.首先需要一个centos基础镜像
在这里插入图片描述
2.网上下载jdk和tomcat安装包,将tomcat和jdk安装包上传至服务器,解压。
在这里插入图片描述
3.进入tomcat的conf目录下根据需要更改配置文件。
在这里插入图片描述
4.Jdk与tomcat的同级目录下编辑dockerfile文件。将tomcat,jdk已经项目添加至镜像。Dockerfile文件详情如下:
在这里插入图片描述
5.通过dockerfile构建基础镜像
在这里插入图片描述
6.创建swarm集群
在这里插入图片描述
7.为集群添加worker节点
在这里插入图片描述
8.查看集群的节点分布
在这里插入图片描述

9.将镜像导出并传输到集群的其他worker节点
在这里插入图片描述

10.在另外两台worker节点执行镜像导入操作
docker load -i /tmp/centos_tomcat.tar
在这里插入图片描述在这里插入图片描述

11.在主节点上启动该镜像,创建容器,运行服务,有三个副本。

在这里插入图片描述

二:当集群负载变化时,为集群增加或减少节点的情况

将某节点升级为manager:docker node update --role manager w6e3nh5kvrcve9u1naidmew71
在这里插入图片描述

将某节点的任务转移到其他节点上:docker node update --availability drain p69op0d4n2fdkdk3iahrhzkpu,通常这个节点为leader节点
在这里插入图片描述

将leader节点的角色降级为worker,替补的manager节点会自动升级成leader
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将集群的某节点删除后,该节点启动的服务会被shutdown,管理节点会自动在其他节点再启动该服务,保证服务副本数不变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为集群增加节点后,现有的服务不会在新加节点上运行,之后启动的服务会在新加的节点上进行均衡。现有的服务增加服务副本数之后也会在新节点上进行均衡。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三:滚动更新服务
通过dockerfile创建镜像时,将新的war包添加入tomcat的webapps目录下。其他不变,制作新的镜像。通过镜像的更新达到更新服务的目的
在这里插入图片描述在这里插入图片描述在这里插入图片描述

将镜像导出到本地,并传送到集群的其他节点
在这里插入图片描述

集群的其他节点接收镜像后,导入镜像
在这里插入图片描述在这里插入图片描述

在主节点执行更新服务
docker service update --image swarm_support:new --update-failure-action continue swarm_support_3
在这里插入图片描述

若失败,回滚服务
在这里插入图片描述

四:一个集群上运行服务的实例
1.制作镜像,将用来测试docker集群内是否能访问mysql以及是否能进行负载均衡
在这里插入图片描述
2.首先确保每个node机器上都有所需的镜像
在这里插入图片描述

3.访问一个生产接口:curl -d “phonenum=131767670000” http://172.17.0.2:8080/MobileTrace/model/query
在这里插入图片描述
正常返回。

4.创建一个服务,4个副本,进行端口映射
在这里插入图片描述
5.在另外一台机器上访问接口:
curl -d “phonenum=131767670000” http://10.128.118.107:10010/MobileTrace/model/query
在这里插入图片描述

此次访问负载到107机器上,日志为:
在这里插入图片描述

再次访问,此次访问负载到127机器上:
在这里插入图片描述
日志:
在这里插入图片描述
第三次访问:
在这里插入图片描述
此次访问负载到108机器上,日志:
在这里插入图片描述
上述验证,日志的正确输出说明docker集群内可正常访问mysql,每次访问都能将日志均匀的分布在各个机器上输出,说明集群达到了负载均衡的目的。

附录:docker基础的相关操作
1.验证docker是否安装完成:docker version
在这里插入图片描述
Server是一个常驻进程
Client通过接口与server进程通信,实现容器与镜像的管理。
2.查看docker的系统信息:docker info
在这里插入图片描述
3.docker images:查看本机镜像
在这里插入图片描述
4.docker ps:显示正在运行的容器
在这里插入图片描述
5.Docker ps -a:显示全部的容器,包括已停止的容器
在这里插入图片描述
docker run -d -p 10004:8080 -v supportPlatform.war:/app/tomcat/webapps/supportPlatform.war -v /home/was/logs/mytomcat4:/app/tomcat/logs --name mytomcat4 tomcat:latest:
6.运行tomcat镜像创建出一个容器,并将主机的10004端口映射到容器的8080端口,同时将主机目录下的supportPlatform.war包挂载至容器的/app/tomcat/webapps/目录下,实现主机与容器之间的war包转移运行,同时将其输出日志同步到主机的/home/was/logs/mytomcat4目录下。
在这里插入图片描述
其输出是容器的标识编号,启动命令中的-d表示后台启动,所有命令行不打印启动日志,查看启动日志可以使用命令:docker logs 容器ID
在这里插入图片描述
由于我们在启动时指定了日志在主机下的映射目录,所以在主机的映射目录下也能查看到此日志:
在这里插入图片描述
7.进入容器:docker exec -it 容器ID /bin/bash
在这里插入图片描述
在容器内的指定目录也能看到日志的输出:
在这里插入图片描述
查看启动时挂载的war包:war包上传时会自动解压到同级目录

在这里插入图片描述
查看端口映射:访问主机的10004端口,会映射到容器的8080端口
在这里插入图片描述
8.退出容器:exit
在这里插入图片描述
9.查看容器内的进程:docker top 容器ID
在这里插入图片描述
10.停止容器:docker stop 容器ID
在这里插入图片描述
11.重启容器:docker start 容器ID
在这里插入图片描述

12.删除容器:docker rm 容器ID
容器删除前必须先停止,不然不可以删除。
在这里插入图片描述
13.docker search tomcat:搜索镜像,默认会去https://hub.docker.com下搜索,这是官方维护的公共仓库,镜像最多也最标准。
14.docker pull tomcat:8.5.32:拉取指定版本的镜像。也是从上述仓库拉取。
15.docker rmi 镜像id:删除镜像
在这里插入图片描述
镜像删除前,需保证没有容器是该镜像创建的,不然会保证,删除不了:
在这里插入图片描述
镜像的迁移:
16.保存镜像:docker save mysql-57-centos7 -o /tmp/mysql.tar
在这里插入图片描述
17.导入镜像:docker load -i /tmp/mysql.tar
在这里插入图片描述
18.从主机复制文件到容器内:docker cp app.py e82e7dd094f2:/
在这里插入图片描述
19.通过dockerfile文件创建镜像:docker build -t testimages:test .
在这里插入图片描述
20.创建集群:docker swarm init:红框内为集群的标识ID
在这里插入图片描述
21.向集群添加以一个服务: docker service create --replicas 3 --name “swarm_tomcat” “tomcat:latest”
在这里插入图片描述
该服务有三个副本
22.查看服务日志:docker service logs 服务ID
在这里插入图片描述
23.向集群添加一个node节点:docker swarm join --token 集群ID managerIP:port
24.查看集群中的所有节点:docker node ls
在这里插入图片描述
25.设置某个服务的副本数量: docker service scale swarm_tomcat=4
在这里插入图片描述
26.删除某个服务:docker service rm swarm_tomcat
在这里插入图片描述
27.当前节点离开集群: docker swarm leave --force
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值