Docker 入门 -- Stack

Docker 入门 – Stack

前面我们部署的都是单个服务,现实需求中,应用可能很复杂,需要拆分成多个相互关联的服务,这时候我们就需要一次性部署多个服务。
堆栈是一组相互关联的服务,它们共享依赖,可以协同排列和缩放。

示例:

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: yangguangqishimi/testdemo:1.0.1
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4000:80"
    networks:
      - webnet
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
    networks:
      - webnet
  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - "/home/docker/data:/data"
    deploy:
      placement:
        constraints: [node.role == manager]
    command: redis-server --appendonly yes
    networks:
      - webnet
networks:
  webnet:

说明:
* 1、总共三个服务,web、redis和visualizer,visualizer是一个docker服务可视化工具;
* 2、placement 表示在指定位置(node节点)运行,此处visualizer就被指定在manager节点运行;
* 3、volume 表示visualizer可以访问Docker的host socket文件。
* 4、redis容器中,/data目录映射到主机目录./data中,也就是/home/docker/data,这样当redis容器删除后,数据依然存在,下次再启动redis容器时,还可以读取到之前存储的数据。

创建主机data目录,当前目录为/home/docker

$ docker-machine ssh myvm1 "mkdir ./data"

启动该堆栈,跟前面的命令一样

$ docker stack deploy -c docker-compose.yml hellolfg

启动成功后,访问192.168.99.100:8080就能看到各个节点任务的运行情况,如下图所示

图1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值