设置docker / fig Mesos环境

时间:2014-08-09 09:42:04

标签: docker apache-storm mesos fig

我正在尝试设置一个docker / fig Mesos群集。 我是无花果和Docker的新手。 Docker有很多文档,但我发现自己很难理解如何使用fig。

此刻是我的fig.yaml:

zookeeper:
  image: jplock/zookeeper
  ports: 
  - "49181:2181"
mesosMaster:
  image: mesosphere/mesos:0.19.1
  ports: 
    - "15050:5050"
  links: 
    - zookeeper:zk
  command: mesos-master --zk=zk --work_dir=/var/log --quorum=1
mesosSlave:
  image: mesosphere/mesos:0.19.1
  links: 
    - zookeeper:zk
  command: mesos-slave --master=zk

谢谢!


编辑:

感谢Mark O`Connor的帮助,我创建了一个基于docker的工作台设置(+风暴,计时器等等)。

享受,如果您觉得这很有用 - 请提供: https://github.com/yaronr/docker-mesos

PS。请+1 Mark的答案:)

1 个答案:

答案 0 :(得分:27)

您尚未指出您遇到的错误。

这是您正在使用的图片的文档:

  

使用Mesosphere包的Mesos基础Docker   https://mesosphere.io/downloads/。没有启动Mesos,请使用   mesos-master和mesos-slave Dockers。

这些图片让我真正担心的是它们不受信任,并且没有立即可用的来源。

所以我使用mesosphere github作为灵感来重新创建你的例子:

更新示例

更新示例以包含chronos框架

├── build.sh
├── fig.yml
├── mesos
│   └── Dockerfile
├── mesos-chronos
│   └── Dockerfile
├── mesos-master
│   └── Dockerfile
└── mesos-slave
    └── Dockerfile

构建基本图像(只需要完成一次)

./build.sh

运行fig以启动每项服务的实例:

$ fig up -d
Creating mesos_zk_1...
Creating mesos_master_1...
Creating mesos_slave_1...
Creating mesos_chronos_1...

关于无花果的一个有用的事情是你可以扩大奴隶

$ fig scale slave=5
Starting mesos_slave_2...
Starting mesos_slave_3...
Starting mesos_slave_4...
Starting mesos_slave_5...

mesos主控制台应显示5个运行

的从属设备
http://localhost:15050/#/slaves

chronos框架应该正在运行并准备启动任务

http://localhost:14400

fig.yml

zk:
  image: mesos
  command: /usr/share/zookeeper/bin/zkServer.sh start-foreground
master:
  build: mesos-master
  ports:
    - "15050:5050"
  links:
    - "zk:zookeeper"
slave:
  build: mesos-slave
  links:
    - "zk:zookeeper"
chronos:
  build: mesos-chronos
  ports:
    - "14400:4400"
  links:
    - "zk:zookeeper"

注意:

  • 此示例只需要一个zookeeper实例

build.sh

docker build --rm=true --tag=mesos mesos

mesos / Dockerfile

FROM ubuntu:14.04
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

RUN echo "deb http://repos.mesosphere.io/ubuntu/ trusty main" > /etc/apt/sources.list.d/mesosphere.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
RUN apt-get -y update
RUN apt-get -y install mesos marathon chronos

mesos主/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

EXPOSE 5050

CMD ["--zk=zk://zookeeper:2181/mesos", "--work_dir=/var/lib/mesos", "--quorum=1"]

ENTRYPOINT ["mesos-master"]

mesos从式/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

CMD ["--master=zk://zookeeper:2181/mesos"]

ENTRYPOINT ["mesos-slave"]

mesos-克罗诺斯/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

RUN echo "zk://zookeeper:2181/mesos" > /etc/mesos/zk

EXPOSE 4400

CMD ["chronos"]

注意:

  • &#34; chronos&#34;命令行使用文件配置。