使用 Docker Compose 通过一条命令设置 Mesos

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

如果您还没有尝试过 Docker,您应该尝试一下。它赋予您的强大力量和简单的用户体验会让您赞叹不已。在本文中,我将向您展示如何使用 Docker compose 启动单节点 Mesos 设置。

Docker 在 2 月 26 日宣布了 compose 。 Compose 允许您描述多容器设置并使用一个二进制 docker-compose 对其进行管理。 Compose 管理的容器和卷组合定义在一个 YAML 文件中,超级易读和超级易写。 UX 与 Docker CLI 非常相似。

当 compose 发布时,我尝试了一下,但有点不知所措,因为它基本上是对 Fig 的重新审视。这并不意外,因为 Docker Inc 收购了 Fig 的制造商 Orchard。但我期待更多的附加功能,甚至与 Docker 客户端更紧密的集成( 开发分支 实际上是原型),甚至是一个通用版本而不是单独的二进制文件。我相信这会到来。

当我写 docker cookbook 时,我已经部署了 20 种不同的 Wordpress 方式,而且有点无聊!我正在寻找有关 Mesos 及其对 Docker 支持的更多信息,我重新阅读了一篇很棒的 博客 文章,其中展示了如何在 7 个命令中启动 Mesos 设置(zookeeper、master、slave、marathon 框架)。不能打败那个。

当我重新阅读这篇文章时,我不由自主地认为这是 docker-compose 的一个令人兴奋的用例。一个 YAML 文件,用于启动 Mesos/Zookeeper/Marathon 并进行试验。当然,我不是在谈论生产多节点设置。我只是为了一个简单的 Mesos 实验而查看它。

我将为您省去安装 compose 的细节(只需卷曲即可)。码头工人的文档 很棒

所以这是描述我们的 Mesos 设置的 YAML 文件:


 zookeeper:
  image: garland/zookeeper
  ports:
   - "2181:2181"
   - "2888:2888"
   - "3888:3888"
mesosmaster:
  image: garland/mesosphere-docker-mesos-master
  ports:
   - "5050:5050"
  links:
   - zookeeper:zk
  environment:
   - MESOS_ZK=zk://zk:2181/mesos
   - MESOS_LOG_DIR=/var/log/mesos
   - MESOS_QUORUM=1
   - MESOS_REGISTRY=in_memory
   - MESOS_WORK_DIR=/var/lib/mesos
marathon:
  image: garland/mesosphere-docker-marathon
  links:
   - zookeeper:zk
   - mesosmaster:master
  command: --master zk://zk:2181/mesos --zk zk://zk:2181/marathon
  ports:
   - "8080:8080"
mesosslave:
  image: garland/mesosphere-docker-mesos-master:latest
  ports:
   - "5051:5051"
  links:
   - zookeeper:zk
   - mesosmaster:master
  entrypoint: mesos-slave
  environment:
   - MESOS_HOSTNAME=192.168.33.10
   - MESOS_MASTER=zk://zk:2181/mesos
   - MESOS_LOG_DIR=/var/log/mesos
   - MESOS_LOGGING_LEVEL=INFO

启动这个:


 zookeeper:
  image: garland/zookeeper
  ports:
   - "2181:2181"
   - "2888:2888"
   - "3888:3888"
mesosmaster:
  image: garland/mesosphere-docker-mesos-master
  ports:
   - "5050:5050"
  links:
   - zookeeper:zk
  environment:
   - MESOS_ZK=zk://zk:2181/mesos
   - MESOS_LOG_DIR=/var/log/mesos
   - MESOS_QUORUM=1
   - MESOS_REGISTRY=in_memory
   - MESOS_WORK_DIR=/var/lib/mesos
marathon:
  image: garland/mesosphere-docker-marathon
  links:
   - zookeeper:zk
   - mesosmaster:master
  command: --master zk://zk:2181/mesos --zk zk://zk:2181/marathon
  ports:
   - "8080:8080"
mesosslave:
  image: garland/mesosphere-docker-mesos-master:latest
  ports:
   - "5051:5051"
  links:
   - zookeeper:zk
   - mesosmaster:master
  entrypoint: mesos-slave
  environment:
   - MESOS_HOSTNAME=192.168.33.10
   - MESOS_MASTER=zk://zk:2181/mesos
   - MESOS_LOG_DIR=/var/log/mesos
   - MESOS_LOGGING_LEVEL=INFO

并在 http://IP_HOST:5050 打开浏览器,然后按照 博客 的其余部分开始马拉松任务。

归根结底,由于 Docker-compose 和一个相当简单的 YAML 文件,我从“7 个命令到 Mesos”变成了“1 个命令到 Mesos”。必须爱上它。当 compose 可以在 由 Machine 启动的 Docker Swarm 中跨 Docker 主机执行此操作时。然后真正的乐趣将开始!

相关文章