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

这是我目前的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的mesos实用设置(+ Storm,Chronos等)。

尽情享受,如果您觉得这有用-请贡献:
https://github.com/yaronr/docker-mesos

PS。请+1马克的答案:)

最佳答案

您尚未指出遇到的错误。

这是您使用的图像的文档:

  • https://registry.hub.docker.com/u/mesosphere/mesos/



  • 我真正担心这些图像的是它们是不受信任的,并且没有即时可用的资源。

    因此,我以中间层github为灵感重新创建了您的示例:
  • https://github.com/mesosphere/docker-containers

  • 更新示例

    更新示例以包括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
    


    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 <[email protected]>
    
    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-master / Dockerfile
    FROM mesos
    MAINTAINER Mark O'Connor <[email protected]>
    
    EXPOSE 5050
    
    CMD ["--zk=zk://zookeeper:2181/mesos", "--work_dir=/var/lib/mesos", "--quorum=1"]
    
    ENTRYPOINT ["mesos-master"]
    

    mesos-slave / Dockerfile
    FROM mesos
    MAINTAINER Mark O'Connor <[email protected]>
    
    CMD ["--master=zk://zookeeper:2181/mesos"]
    
    ENTRYPOINT ["mesos-slave"]
    

    mesos-chronos / Dockerfile
    FROM mesos
    MAINTAINER Mark O'Connor <[email protected]>
    
    RUN echo "zk://zookeeper:2181/mesos" > /etc/mesos/zk
    
    EXPOSE 4400
    
    CMD ["chronos"]
    

    笔记:
  • 使用文件配置“chronos”命令行。
  • 08-07 17:44