【译】使用Docker Compose一条指令配置Mesos

原文作者:Sebastien Goasguen 原文地址:https://dzone.com/articles/1-command-to-mesos-with-docker-compose

原文

Setup Mesos with One Command Using Docker Compose

If you have not tried Docker, you should. The sheer power it puts in your hands and the simplicity of the user experience will just wow you. In this post, I will show you how to start a one node Mesos setup with Docker compose.

Docker announced compose on February 26th. Compose allows you to describe a multi-container setup and manage it with one binary docker-compose. The containers and volumes combinations managed by Compose are defined in a YAML file, super easy to read and super easy to write. The UX is very similar to the Docker CLI.

When compose was released, I tried it and was a bit underwhelmed, as it is basically a relooking of Fig. This is not unexpected as Docker Inc, acquired Orchard the makers of Fig. But I was expecting more added functionality and even a tighter integration with the Docker client (something a devbranch actually prototyped), even a common release instead of a separate binary. I am sure this will come.

As I am writing the docker cookbook, I have deployed Wordpress 20 different ways, and it’s getting a bit boring ! I was looking for more information on Mesos and its support for Docker, I re-read a terrific blog post that showed how to start a Mesos setup (zookeeper, master, slave, marathon framework) in 7 commands. Can’t beat that.

When I re-read this post, I automatically thought this was an exciting use case for docker-compose. One YAML file to start Mesos/Zookeeper/Marathon and experiment with it. Of course I am not talking about a production multi-node setup. I am just looking at it for an easy Mesos experiment.

I will spare you the details of installing compose (just a curl away). The dockers docs are great.

So here is the YAML file describing our Mesos setup:

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

Launch this with:

$ ./docker-compose up -d

Recreating vagrant_zookeeper_1...

Recreating vagrant_mesosmaster_1...

Recreating vagrant_marathon_1...

Recreating vagrant_mesosslave_1...

And open your browser at http://IP_HOST:5050 then follow the rest of the blog to start a task in marathon.

Bottom line, I went from ‘7 commands to Mesos’ to ‘1 command to Mesos’ thanks to Docker-compose and a fairly simple YAML file. Got to love it. When compose can do this across Docker hosts in a Docker Swarm started by Machine. Then the real fun will begin !

译文

使用Docker Compose一条指令配置Mesos

如果你还没有使用过的Docker,你一定要试一试。纯粹的功能和质朴的用户体验将让你感到惊奇。在这篇文章中,我将告诉你如何通过Docker Compose来设置一个单节点的Mesos。(译者注:Mesos集群官网)

Docker在2月26日发布了Compose(译者注:Docker-Compose官方文档)。Compose允许你使用一个Docker-Compose实现多容器安装和管理。使用Compose管理的容器会通过一个YAML文件来进行定义,十分容易阅读和编写,其用户体验和Docker CLI非常相似。

Compose刚发布时,我试着使用了一下,有点让人失望,因为它基本上是一个翻版的Fig。对于Docker公司来说这并不意外,为了夺取Orchard旗下Fig的市场。但我期待更多的附加功能,乃至更紧密集成的Docker的客户端(一些dev 分支实际上提供了原型),即使只是一个普通的发行版而不是一个单独的程序。我相信这一切都会实现。

当我写 《docker cookbook》 时,我已经试着使用20种不同的方式部署WordPress,不得不承认这确实有点无聊! 我开始寻找更多的关于Mesos的信息,然后我发现Docker已经实现了对其的支持,我重读了一篇很棒的博客,展示关于如何通过七条指令来实现一个Mesos的安装(zookeeper, master, slave, marathon framework)【译者注:原文链接翻译参考】。我认输!

当我重新阅读这篇文章是,我下意识地认为这是Docker-Compose一个令人激动的用例。使用一个YAML文件来启动Mesos/Zookeeper/Marathon并进行实验。当然,我不是在介绍一个多节点的设置。仅仅只是简单的进行一个Mesos的实验。

我会略过compose安装的细节,Docker文档已经足够完美了。

下面就是YAML文件的所描述的Mesos设置:

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

Recreating vagrant_zookeeper_1...

Recreating vagrant_mesosmaster_1...

Recreating vagrant_marathon_1...

Recreating vagrant_mesosslave_1...

打开你的浏览器,输入 http://IP_HOST:5050 然后按照博客内容剩下的内容在marathon中添加一个任务。

最后,我将’7条指令设置Mesos‘变成了’1条指令设置Mesos‘,这都归功于Docker-compose和简便的YAML文档。试着喜欢上这种用法。当Compose能通过Docker实现Docker Swarm的机器启动,那么真正有趣的部分就开始了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

Java 语言版本整理,先到1.8版本,不全请补充

Java 语言版本 JDK 1.1.4 Sparkler 宝石 1997-09-12 JDK 1.1.5 Pumpkin 南瓜 1997-12-13 JDK 1...

2325
来自专栏运维技术迷

Centos系统修改时区

今天在操作系统的时候创建了一个文件,ls了一下发现时间和本地时间不对,date看了一下后发现时区是EDT(Eastern Daylight Timing)指...

3426
来自专栏大魏分享(微信公众号:david-share)

厉害了!全CI/CD工具链的实现 | 基于OCP离线: Openshift3.9学习系列第五篇

干货巨献:Openshift3.9的网络管理大全.加长篇---Openshift3.9学习系列第二篇

1134
来自专栏张善友的专栏

[.NET网格计算框架] Alchemi

Alchemi [.NET网格计算框架] 是 一个以使用简易为目的的Windows下的网格计算框架。它提供了:a)开发网格软件的编程环境 和 b)建造网格和运行...

1748
来自专栏blog

利用cert-manager让Ingress启用免费的HTTPS证书

cert-manager 是替代 kube-lego 的一个开源项目,用于在 Kubernetes 集群中自动提供 HTTPS 证书,支持 Let’s Encr...

1491
来自专栏bboysoul

使用devstack安装openstack

早就想用devstack去安装openstack了,但是自己的电脑内存才4g真的太小了,最近上了8g内存,果断开虚拟机装devstack。 devstack的...

673
来自专栏blog

利用cert-manager让Ingress启用免费的HTTPS证书

cert-manager 是替代 kube-lego 的一个开源项目,用于在 Kubernetes 集群中自动提供 HTTPS 证书,支持 Let’s Encr...

742
来自专栏码匠的流水账

关于ribbonClient配置的一个坑

不知道从哪个版本起,给ribbon配置物理的server list起,单纯配置xxx.ribbon.listOfServers不起效果了,于是就开启了埋坑之旅。

312
来自专栏Hadoop实操

如何在CDH中部署及使用Kylin

1474
来自专栏Netkiller

Spring boot with Apache Hive

本文节选自《Netkiller Database 手札》 5.26. Spring boot with Apache Hive 5.26.1. Maven ...

5655

扫描关注云+社区