【译】使用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 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

Docker,改变程序世界的箱子

Docker容器是什么鬼? 简言之, Docker容器就是一个软件集装箱。 装什么? 特定版本的操作系统、数据库、服务器程序和 web 应用等…… ? ? ? ...

3295
来自专栏琯琯博客

docker-resources资源汇集相关项目博文

docker资源汇总。英文版本链接 资源汇集 书籍 第一本Docker书 (7.4分) Docker —— 从入门到实践 (内容一般) The Docker B...

3467
来自专栏散尽浮华

Docker容器学习梳理--Volume数据卷使用

之前部署了Docker容器学习梳理--基础环境安装,接下来看看Docker Volume的使用。 Docker volume使用 Docker中的数据可以存储在...

3578
来自专栏北京马哥教育

写给新手的十一条 Docker 守则

1465
来自专栏各种机器学习基础算法

关于Docker的一些常识

一、为什么使用Docker Docker一词意为码头工人,而Docker的功能也与集装箱类似。通常一个webapp并不会用到操作系统/虚拟机的全部功能,即操作...

3439
来自专栏CSDN技术头条

如何构建企业级Docker Registry Server

很多人问我,虚拟机镜像和docker镜像的区别是什么?其实区别非常明显,我们可以通过阅读Dockerfile文件就可以知道这个镜像都做了哪些操作,能提供什么服务...

19510
来自专栏纯洁的微笑

Docker(一):Docker入门教程

如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,D...

3235
来自专栏我是攻城师

容器化网页应用

3446
来自专栏Java架构沉思录

微服务不得不了解的Docker入门与实践

Docker 是一个能让程序跑在一个它无法感知的、用于隔绝外界环境里的容器的工具。

651
来自专栏Rainbond开源「容器云平台」

如何正确理解Docker生态

993

扫码关注云+社区