【问题标题】:Marathon cannot run an Application which is in docker containerMarathon 无法运行 docker 容器中的应用程序
【发布时间】:2019-04-28 05:45:29
【问题描述】:

我有三个安装了 docker 的节点。在主节点中,我运行 Mesos 和 Marathon 没有任何问题。详情如下: 首先,我使用以下命令进入 docker:

  docker run -v /home/user/.ssh:/root/.ssh --privileged -p 
   5050:5050 -p 5051:5051 -p 5052:5052 -p 2181:2181 -p 8082:8081 
   -p 6123:6123 -p 8080:8080 -p 50090:50090 -p 50070:50070 -p 
   9000:9000 -p 2888:2888 -p 3888:3888 -p 4041:4040 -p 7077:7077 
   -p 52222:22 -e WEAVE_CIDR=10.32.0.2/12 
   -e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins 
   -e LIBPROCESS_IP=10.32.0.2 
   -e MESOS_RESOURCES=ports*:[11000-11999] 
   -ti hadoop_marathon_mesos_flink_2 /bin/bash

然后我为 Zookeeper 和 Mesos 运行这些命令:

 /home/zookeeper-3.4.14/bin/zkServer.sh restart

 /home/mesos-1.7.2/build/bin/mesos-master.sh --ip=10.32.0.1 
   --hostname=10.32.0.1 --roles=marathon,flink --quorum=1 
   --work_dir=/var/run/mesos --log_dir=/var/log/mesos

运行 Mesos 后,我打开另一个终端运行 Marathon:

  docker run exec -it container-id /bin/bash

然后我跑马拉松没有任何问题:

  /home/marathon-1.7.189-48bfd6000/bin/marathon 
  --master 10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon 
  --hostname 10.32.0.1 --webui_url 10.32.0.1:8080 
  --logging_level debug

为了测试 Marathon,我编写了一个简单的 scipt 来打印字符串,它在 docker 容器中运行良好。但是当我创建一个新的应用程序来运行脚本时,由于这个错误它没有运行:

I0428 05:32:09.167528 5115 exec.cpp:162] 版本:1.7.2

I0428 05:32:09.177440 5117 exec.cpp:236] 执行程序在代理 984595ae-e811-48fb-a9f5-ca6128e1cc1a-S0 上注册

I0428 05:32:09.179848 5120 executor.cpp:188] 收到订阅事件

I0428 05:32:09.180785 5120 executor.cpp:192] 在 10.32.0.3 上订阅了 executor

I0428 05:32:09.180997 5120 executor.cpp:188] 收到 LAUNCH 事件

I0428 05:32:09.182319 5120 executor.cpp:697] 启动任务 test.f76ace45-6976-11e9-928f-ce235caa831e

I0428 05:32:09.196890 5120 executor.cpp:712] 5124 处的分叉命令 sh: 1: /home/test.sh: 未找到

I0428 05:32:09.369120 5119 executor.cpp:1013] 命令以状态 127 (pid: 5124) 退出

I0428 05:32:10.376525 5123 process.cpp:927] 停止了套接字接受循环

这意味着 Marathon 不知道 docker 容器中的应用程序。你能指导我如何解决这个问题吗? 我也在 Marathon 中设置了 Docker 镜像,但是任务又失败了,Mesos UI 没有任何登录SandBox

请帮帮我。

提前谢谢你。

【问题讨论】:

    标签: docker mesos marathon


    【解决方案1】:

    问题解决了。我必须将应用程序放在从节点中的 docker 容器上。我这样做了,应用程序在 Marathon 中运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2020-07-17
      • 2020-12-30
      • 1970-01-01
      • 2020-08-10
      • 2017-11-03
      • 1970-01-01
      相关资源
      最近更新 更多