docker stack使用

1.docker stack解决什么问题?

在前面的文章中,我们介绍Docker Compose,缺点是不能在分布式多机器上使用;我们还介绍了Docker swarm,缺点是不能同时编排多个服务,所以才有了Docker Stack,可以在分布式多机器上同时编排多个服务。
docker stack 相当于 docker-compose和docker swarm相结合,容器编排集群部署

2.使用方法

1.先创建两个简单springboot项目(java计数器) test1和test2,分别创建对应的Dockerfile文件

test1

@RestController
public class HelloController {

    @Autowired
    private StringRedisTemplate redisTemplate;


    @GetMapping("/test1")
    public String hello1() {
        Long views = redisTemplate.opsForValue().increment("views");
        return "test1 当前访问次数: " + views;
    }

}

test1的Dockerfile

#基础镜像
FROM java:8

#将所有jar包拷贝到/app.jar
COPY ./target/*.jar /app.jar

#暴露端口
EXPOSE 9090

#执行运行jar包命令
CMD ["java","-jar", "/app.jar"]

test2

@RestController
public class HelloController {

    @Autowired
    StringRedisTemplate redisTemplate;

    @GetMapping("test2")
    public String hello() {
        Long views = redisTemplate.opsForValue().increment("views");
        return "test2 当前访问次数 :" + views;
    }
}

test2的Dockerfile

#基础镜像
FROM java:8

#将所有jar包拷贝到/app.jar
COPY ./target/*.jar /app.jar

#暴露端口
EXPOSE 9091

#执行运行jar包命令
CMD ["java","-jar", "/app.jar"]

2.将Dockerfile打成镜像上传到dockerhub上,这里以test1为例

docker build -t test:1.0 .
docker tag test:1.0 crazypeople/test:1.0
docker login    
docker push crazypeople/test:1.0

3.编写docker-compose.yml文件 ,并上传到服务器上面

version: "3.8"

services:
  counter_web1:
  #这里要写刚刚上传到dockerhub上的镜像
    image: crazypeople/test1:1.0
    container_name: counter_web1
    deploy:
      replicas: 4
    depends_on:
      - redis-test
    ports:
       - "9090:9090"
  counter_web2:
    image: crazypeople/test2:1.0
    container_name: counter_web2
    deploy:
      replicas: 4
    depends_on:
      - redis-test
    ports:
      - "9091:9091"
  redis-test:
    container_name: redis_test
    image: redis:6.0-alpine

4.创建swarm集群 如何创建swarm集群

5.使用docker stack deploy 部署

docker stack deploy my-test --compose-file=docker-compose.yml路径

6.使用命令查看

docker stack services stack名   查看该stack中有多少个服务

在这里插入图片描述

docker stack ps stack名. 查看该stack中所有任务信息

在这里插入图片描述

7.移除stack

docker stack rm stack名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值