如果您还没有尝试过 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 主机执行此操作时。然后真正的乐趣将开始!