+-
docker – 如何用marathon rest API知道容器名称
我正在使用Apache Mesos Marathon Zookeeper来部署我的rails应用程序.
我需要在rails app和其他容器之间共享数据.我在这里找到了一些参考马拉松的方法如下:

marathon/docs/native-docker.html

{
"id": "privileged-job",
"container": {
    "docker": {
        "image": "mesosphere/inky"
        "privileged": true,
        "parameters": [
            { "key": "hostname", "value": "a.corp.org" },
            { "key": "volumes-from", "value": "another-container" },
            { "key": "lxc-conf", "value": "..." }
        ]
    },
    "type": "DOCKER",
    "volumes": []
},
"args": ["hello"],
"cpus": 0.2,
"mem": 32.0,
"instances": 1
}

但我找不到一种方法来发现我的rails应用程序容器的名称,因为马拉松分配名称格式为:“mesos-uuid”.有什么想法解决它吗?或者用马拉松从容器分享体积的另一种方式?

最佳答案
您可以将 constraints添加到您的应用中,以强制它们进入特定主机.

在一个简单的例子中,您可以执行类似的操作将应用程序强制到特定主机上:

{
 "instances": 1,
 "constraints": [["hostname", "LIKE", "worker-1"]]
}

下一个选项带来属性.
您可以使用一些自定义标记标记已知数量的主机(假设为3).

然后您的应用定义可能如下所示:

{
 "instances": 3,
 "constraints": [
   ["hostname", "UNIQUE"],
   ["your-custom-tag", "GROUP_BY"]
 ]
}

您将此添加到两个应用程序的应用程序定义中,从而导致每个应用程序的一个实例在您标记的所有三个从属服务器上运行.

有关设置属性,请参阅a reference doc.

点击查看更多相关文章

转载注明原文:docker – 如何用marathon rest API知道容器名称 - 乐贴网