首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用volumes-from in marathon

如何使用volumes-from in marathon
EN

Stack Overflow用户
提问于 2015-03-16 03:34:28
回答 4查看 4.5K关注 0票数 10

我用mesos + marathon + docker工作了很长一段时间,但我在某些时候被卡住了。现在我试着处理持久化容器,我试着使用"volumes-from“参数,但我不能让它工作,因为我不知道如何弄清楚数据框的名称,以便将其作为键放在json中。我用here中的示例进行了尝试

代码语言:javascript
复制
    {
    "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
}

我将非常感谢任何形式的帮助:-)

EN

回答 4

Stack Overflow用户

发布于 2015-08-13 15:56:11

据我所知: docker --volume-from获取容器的ID或名称。

由于您datacontainer也是通过Marathon启动的,因此它将获得一个ID (不知道如何从marathon获取此ID )和一个格式为:mesos-0fb2e432-7330-4bfe-bbce-4f77cf382bb4的名称,该名称与Mesos中的任务ID或docker ID无关。

解决方案是为您的web-ubuntu应用程序编写类似以下内容的代码:

代码语言:javascript
复制
"parameters": [
    { "key": "volumes-from", "value": "mesos-0fb2e432-7330-4bfe-bbce-4f77cf382bb4" }
]

因为这个docker-ID在Marathon中是未知的,所以使用从Marathon开始的datacontainer是不实际的。

您可以尝试使用Docker直接启动一个数据容器(不使用马拉松),并像以前一样使用它,但由于您事先不知道web-ubuntu将被安排在哪里(除非您添加一个约束来强制执行),所以这是不实际的。

票数 1
EN

Stack Overflow用户

发布于 2015-03-17 00:24:28

代码语言:javascript
复制
{
    "id": "data-container",
    "container": {
        "docker": {
            "image": "mesosphere/inky"
        },
        "type": "DOCKER",
        "volumes": [
      {
        "containerPath": "/data",
        "hostPath": "/var/data/a",
        "mode": "RW"
      }
    ]
    },
    "args": ["data-only"],
    "cpus": 0.2,
    "mem": 32.0,
    "instances": 1
}
{
    "id": "privileged-job",
    "container": {
        "docker": {
            "image": "mesosphere/inky"
            "privileged": true,
            "parameters": [
                { "key": "hostname", "value": "a.corp.org" },
                { "key": "volumes-from", "value": "data-container" },
                { "key": "lxc-conf", "value": "..." }
            ]
        },
        "type": "DOCKER",
        "volumes": []
    },
    "args": ["hello"],
    "cpus": 0.2,
    "mem": 32.0,
    "instances": 1
}

也许是这样吧?

票数 0
EN

Stack Overflow用户

发布于 2015-09-09 02:09:48

Mesos支持使用key和value传递音量插件的参数。但问题是如何传递卷名,Mesos希望它是绝对路径,或者如果没有传递绝对路径,那么它将合并从属容器沙箱文件夹提供的名称。它们这样做主要是为了支持检查点,以防slave意外宕机。

在上面得到增强之前,唯一的选择是使用另一个键值对参数。例如,在上述情况下

{ "key":"volumes-from","value":"databox“},{ "key":"volume","value":"datebox_volume”}

我已经用一个插件测试了上面的插件,它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29065246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档