使用 docker 和 docker-compose 配置 3 个 Mesos 实例和 1 个主实例

Configure 3 Mesos instance with 1 master using docker and docker-compose

通过阅读这篇文章:how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04, 我想使用 3 个服务器开始我自己的 docker mesosphere。

设置与文章类似,预计我使用 4 docker 化服务器:

我对配置文件的位置感到很困惑,因为它们将 4 个组件安装在同一台机器上。 Docker 安装使用 4 个不同的服务器,如何使用 Docker.

正确应用这些步骤

我有

这是我开始为 运行 master mesosphere 服务器 1

编写的 docker-compose.yml
zookeeper:
  build: zookeeper
  restart: always
  command: /usr/share/zookeeper/bin/zkServer.sh start-foreground
  ports:
    - "2181:2181"
    - "2888:2888"
    - "3888:3888"
master:
  build: master
  restart: always
  environment:
    - MESOS_HOSTNAME=master.prod-02.example.com
    - MESOS_ZK=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MESOS_QUORUM=1
    - MESOS_LOG_DIR=/var/log/mesos
    - MESOS_WORK_DIR=/var/lib/mesos
  volumes:
    - /srv/docker/mesos-master:/var/log/mesos
  ports:
    - "5050:5050"
slave:
  build: slave
  restart: always
  privileged: true
  environment:
    - MESOS_HOSTNAME=slave.prod-02.example.com
    - MESOS_MASTER=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins #also in Dockerfile
    - MESOS_CONTAINERIZERS=docker,mesos
    - MESOS_LOG_DIR=/var/log/mesos
    - MESOS_LOGGING_LEVEL=INFO
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/bin/docker:/usr/bin/docker
    - /sys:/sys:ro
    - /srv/docker/mesos-slave:/var/log/mesos
    - /srv/docker/mesos-data/docker.tar.gz:/etc/docker.tar.gz
  ports:
    - "5051:5051"
marathon:
  build: marathon
  restart: always
  environment:
    - MARATHON_HOSTNAME=marathon.prod-02.example.com
    - MARATHON_MASTER=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MARATHON_ZK=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/marathon
  ports:
    - "8081:8080"

我的项目目录是这样的

使用此配置,主从服务器无法启动,日志为:

WARNING: Logging before InitGoogleLogging() is written to STDERR
F1016 12:12:49.976361     1 process.cpp:895] Failed to initialize: Failed to bind on XXX.XXX.XXX.XXX:5051: Cannot assign requested address: Cannot assign requested address [99]
*** Check failure stack trace: ***

由于文档不足,我感到有点迷茫,非常感谢任何帮助配置

我终于解决了这个问题,缺少的是为主从设置的外部 IP 地址 MESOS_IP 以及 net: 主机模式