本文原文是 Deploy a Mesos Cluster with 7 Commands Using Dockerhtml
這個教程將給你展現怎樣使用 Docker 容器提供一個單節點的 Mesos 集羣(將來的一篇文章將展現怎樣很容易的擴展這個到多個節點或者是見底部更新)。這意味着你能夠使用 7 個命令啓動整個集羣!不須要安裝任何東西除了一個正在運行的 Docker 服務器。node
將啓動 4 個容器:git
正如惟一要求提到的是有一個正在運行的 Docker 服務器。這意味着你能夠啓動一個本地的 已經安裝 Docker 的 Vagrant box,使用 Boot2Docker,使用 CoreOS,AWS 上的實例,或者任何你能夠獲取到的 Docker 服務器。github
在 Github repository 概述了這整個過程。web
sekka1/mesosphere-dockerdocker
以上全部的 Docker 容器構建文件都在這裏。你能夠在本地構建每個容器或者僅僅使用位於 Docker Hub 上的預構建容器。如下的腳本將爲你自動下載須要的預構建容器。瀏覽器
ZooKeeper — https://registry.hub.docker.com/u/garland/zookeeper/bash
Meso Master — https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/服務器
Marathon — https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/測試
第一步:或者 Docker 服務器的 IP 並導出到環境變量。咱們將在隨後的 Docker 命令中不斷地使用這個 IP。
root@docker-server:/# HOST_IP=10.11.31.7
第二步:啓動 ZooKeeper 容器
docker run -d \ -p 2181:2181 \ -p 2888:2888 \ -p 3888:3888 \ garland/zookeeper
第三步:啓動 Mesos Master
docker run --net="host" \ -p 5050:5050 \ -e "MESOS_HOSTNAME=${HOST_IP}" \ -e "MESOS_IP=${HOST_IP}" \ -e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \ -e "MESOS_PORT=5050" \ -e "MESOS_LOG_DIR=/var/log/mesos" \ -e "MESOS_QUORUM=1" \ -e "MESOS_REGISTRY=in_memory" \ -e "MESOS_WORK_DIR=/var/lib/mesos" \ -d \ garland/mesosphere-docker-mesos-master
第四步:啓動 Marathon
docker run \ -d \ -p 8080:8080 \ garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon
第五步:在一個容器中啓動 Mesos Slave
docker run -d \ --name mesos_slave_1 \ --entrypoint="mesos-slave" \ -e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \ -e "MESOS_LOG_DIR=/var/log/mesos" \ -e "MESOS_LOGGING_LEVEL=INFO" \ garland/mesosphere-docker-mesos-master:latest
第六步:進入 Mesos 的 webpage
依賴於你怎樣設置的你的 Docker server 和它的 IP 地址,你或許不得不改變你輸入到瀏覽器的 IP 可是端口是同樣的。
Mesos webpage 將在這個地址:
http://${HOST_IP}:5050
這時候你將獲得一個像這樣的頁面但可能在‘Tasks’ 表格沒有任何的條目。
第七步:進入 Marathon 的 webpage 啓動一個任務
Marathon 的 webpage 讓你調度在 Meso Slave 容器長時間運行的任務。這是一個很是好的查看你集羣是否在正常運行的測試。你能夠這樣看 Marathon 的 webpage:
http://${HOST_IP}:8080
點擊在頂部右端的 「New App」 按鈕會給你如下的菜單,你能夠建立一個新的 job/task。咱們簡單的輸出一個 hello 到一個文件中。咱們能夠進入到容器並檢查該文件是否被建立以及該 job 是否在持續運行。
第八步:檢查 job/task 是否正在運行
讓咱們檢查 job/task 在 Mesos Slave 上是否正在持續運行。
在 Docker server 運行如下命令。它將讓你進入 slave 容器並從那裏 tail out 這 output.txt 文件。
docker exec -it mesos_slave_1 /bin/bash root@ca83bf0ea76a:/# tail -f /tmp/output.txt
你將看到 「hello」 每秒一次的被放入該文件中。
更新:我更新了該項目文檔包含了怎樣設置一個多節點的環境:https://github.com/sekka1/mesosphere-docker#multi-node-setup