【问题标题】:marathon does not delete a docker container after destroying the jobmarathon 在销毁作业后不会删除 docker 容器
【发布时间】:2015-07-30 17:49:54
【问题描述】:

当我将 docker 容器作为马拉松作业运行时,它会在活动的 mesos 从属系统中创建一个 docker 容器。当暂停或销毁 docker 作业时,我希望马拉松应该删除不再需要的 docker 容器。但是容器不会被删除。每次马拉松重新启动 docker 容器作业时,我都必须手动删除它们。

有没有办法自动删除这些不需要的容器?

编辑: 添加用于启动马拉松作业的 json 文件

{
  "id": "pga-docker",
  "cmd":"sh pga-setup.sh",
  "cpus": 0.5,
  "mem": 1024.0,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "pga:test",
      "parameters": [
        { "key": "env", "value": "SERVER_HOST=value" },
        { "key": "env", "value": "SERVER_PORT=value" }
      ],
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 0}
      ]
    }
  }
}

【问题讨论】:

  • 你使用哪个 mesos 版本?
  • 我检查了当前的mesos代码,容器应该被移除了。
  • 我正在观察被破坏的应用程序的相同行为。不确定是 Marathon 问题还是 mesos-slave 问题。
  • 我的 mesos 0.22.1,我正在使用命令行 json 文件来实例化马拉松中的作业。但是当我销毁应用程序时,它不会从主机系统中删除容器,甚至不会停止容器。所以我开始相信,一旦马拉松工作开始,就与托管系统中的码头工人无关。但我错了,因为当我通过“docker stop”命令强制停止容器时,我可以立即看到 marathon 再次启动一个新容器,这是预期的 marathon 作业行为。所以这种方法可能有问题,我附上我的 json 文件,让我感觉很舒服。

标签: docker mesos marathon


【解决方案1】:

Marathon 将重新启动一个失败的 docker 容器,以便您拥有所请求的实例数量。您可能会看到 Mesos 未清理的已停止/失败的容器。这可能与 Mesos 将容器清理延迟到 GC 之后的事实有关。 见https://issues.apache.org/jira/browse/MESOS-1656

【讨论】:

    【解决方案2】:

    这是 Marathon 的行为,因为它适用于长时间运行的服务,一旦任务完成,Marathon 假定它已在该主机中终止,并立即分配一个新实例来运行应用程序。如果您需要一项任务,您可以使用 Chronos,因此它使任务只运行一次。我已经为马拉松编写了一个脚本来自动执行此操作。

    start=$1
    end=$2
    for (( c=$start; c<=$end; c++ ))
    do
    
             echo "deleting:$c"
             sleep 10
             var=$(curl -X GET http://localhost:8080/v2/apps/docker-app-$c | grep "startedAt")
             echo "$var"
             if [[ $var == *"startedAt"* ]]
             then
              curl -X DELETE http://localhost:8080/v2/apps/docker-app-$c
              echo "going to delete"
             else
                    echo "application not started yet"
             fi
    
     sleep 1
    done
    echo "Completed!"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2012-12-30
      • 2013-10-18
      相关资源
      最近更新 更多