Docker Service
# 简介
docker-service 是指一组任务的集合,服务定义了任务的属性,比如任务的个数、服务策略、镜像的版本号等,服务有两种模式
replicated services:按照一定规则在各个工作节点上运行指定个数的任务
global services:每个工作节点上运行一个任务
# 实战
# 1. Nginx基础镜像准备
拉取Nginx镜像
docker pull nginx:1.18.0-alpine
1备份镜像
#打成一个tar 包 mkdir -p /data/nginx docker save nginx:1.18.0-alpine -o /data/nginx/nginx:1.18.0.tar
1
2
3传输镜像 到各个节点
将nginx镜像使用scp 命令传输到192.168.242.132,192.168.242.132两个节点中
#执行下面命令之前,要确保132 133 两个节点有指定的目录 /data/nginx #注意nginx\:1.18.0.tar 中间有一个反斜杠 scp /data/nginx/nginx\:1.18.0.tar root@192.168.242.132:/data/nginx scp /data/nginx/nginx\:1.18.0.tar root@192.168.242.133:/data/nginx
1
2
3
4解压nginx:分别在所有节点中加载nginx 镜像
cd /data/nginx docker load -i nginx:1.18.0.tar
1
2
# 2. 部署Nginx
创建nginx网络
- 在manager节点中创建overlay网络
docker network create -d overlay nginx-net
- 在manager节点中创建overlay网络
部署Nginx
在集群中创建7个Nginx服务,在manager节点中执行,使用【docker service create】命令
# --network nginx-net 使用刚刚创建的网络 # replicas 7 代表 7个副本服务 docker service create --name nginx --network nginx-net -p 80:80 --replicas 7 nginx:1.18.0-alpine
1
2
3manager节点查看服务
docker service ls
1
访问Nginx: 所有节点主机都可以访问
剔除manager中非服务
docker node update --availability drain 节点Id|名称
1服务的缩容与扩容
#将nginx服务从七个减到5 docker service scale nginx=5
1
2
# 3. 升级Nginx
查看nginx版本
#通过容器查看版本,先进入容器中 docker exec -it 503fe639bb89 sh nginx -v #退出容器 exit
1
2
3
4
5准备nginx:1.19的镜像
升级Nginx
在manager节点执行以下命令,将nginx从1.18.0-alpine升级到1.19.3-alpine
docker service update --image nginx:1.19.3-alpine nginx
1
添加一个对外端口
#将8090 也映射到容器的80端口 docker service update --publish-add 8090:80 nginx
1
2
# 4. 删除Nginx服务
删除service
docker service rm nginx
1删除之前创建的nginx-net
docker network rm nginx-net
1
# 5. Docker-service命令汇总
命令 | 描述 |
---|---|
docker service create | 创建服务 |
docker service inspect | 显示一个或多个服务的详细信息 |
docker service logs | 获取服务的日志 |
docker service ls | 列出服务 |
docker service rm | 删除一个或多个服务 |
docker service scale | 设置服务的实例数量 |
docker service update | 更新服务 |
docker service rollback | 恢复服务至update之前的配置 |
上次更新: 2024/01/16, 22:03:50