用一个命令使用 Docker Compose 安装Mesos

时间:2022-04-21
本文章向大家介绍用一个命令使用 Docker Compose 安装Mesos,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

如果你还没有尝试 Docker,你应该现在试试了。它能提供的功能和简单的用户体验只会令你惊叹。在这篇文章中,我将向您展示如何使用 Docker Compose 构建单节点的 Mesos 系统。

Docker 在 2015 年 2 月 26 日发布了 Compose。Compose 允许您编写一个多容器的配置文件,然后用一个二进制文件 docker-compose 来管理它。由 Compose 管理的容器和容量组合是在 YAML 文件中定义的,它超级容易阅读且超级容易编写。整个用户体验与 Docker 的命令行环境非常相似。

当 Compose 发布时,我尝试了一下,但是并没有给我留下太深刻的印象。它看起来基本上只是 fig 的重新实现。这并不意外,因为 Docker 公司收购了 fig 的制作者 Orchard。我期待 Compose 能提供更多的附加功能,甚至与 Docker 客户端有更紧密的整合(开发分支已经提出了一些原型)。甚至是一个正常的发行,而不是仅仅提供一个二进制文件。

在写 Docker Cookbook 的时候,我已经用 20 种不同的方式部署了 WordPress,这其实有点无聊。当我寻找更多关于 Mesos 及其对 Docker 的支持的时候,我阅读了一篇很棒的博客文章。它展示了如何使用 7 条命令来启动一个 Mesos 实例(包括 ZooKeepr, Meso Master, Marathon, Mesos Slave 这几个容器)。

当我重新阅读这篇文章时,我突然发现这是一个令人兴奋的 docker-compose 用例。只需要一个 YAML 文件就可以启动 Mesos、Zookeeper、Marathon 来进行测试。当然,这并不是一个生产环境上的多节点安装,我只是在寻找一个简单的 Mesos 实验。

这里我会省略安装 Docker Compose 的细节(事实上只需要使用 curl 下载)。Docker 有关于安装的文档

这里是描述我们的 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

然后这样运行它:

$ ./docker-compose up -d  # 守护模式运行 Docker 容器
Recreating vagrant_zookeeper_1...
Recreating vagrant_mesosmaster_1...
Recreating vagrant_marathon_1...
Recreating vagrant_mesosslave_1...

接下来,打开你的浏览器并访问 http://IP地址:5050,然后根据这篇博客来在 Marathon 中开始一个新的任务。

mesos.png

有了 Docker Compose 和它所使用的 YAML 语法,我成功的从“7 条命令安装 Mesos” 到了 “1 条命令安装 Mesos”。我很喜欢这种感觉。什么时候 Compose 可以和 Docker Swarm 相结合,那就有得好玩了,