Docker部署在马拉松赛上,连续失败

我对这些技术是陌生的,并试图弄清楚。 所以,我遵循Mesosphere提供的基本教程,并且能够在本地创build一个集群(两个虚拟机),现在我想部署一个nodejs应用程序,所以我创build了一个包含nodejs express框架和一个刚刚启动服务器的脚本的docker映像。 您可以在dockerregistry中finddocker镜像为pujariamol / nodejs-express,并且在根目录下有一个名为runScript.sh的脚本。

我尝试部署它的JSON如下所示:

{ "id": "app4", "container": { "type":"DOCKER", "docker": { "image": "pujariamol/nodejs-express" } }, "cmd":"echo hello > /tmp/out.txt", "cpus": 0.25, "mem": 512.0, "instances": 1 } 

我以为这将拉我的docker集装箱,并将启动它。 另外,我想运行runScript.sh,所以我在cmd中尝试了'./runScript.sh',但是它不起作用,所以我尝试在out.txt中写一些文本用于testing目的,但似乎没有任何工作。 应用程序部署的那一刻,显示此应用程序的“失败”状态。 我使用铬扩展邮差在马拉松上部署它。 我不知道什么是错的。 请帮助我将这个应用程序部署在马拉松,让我知道如果你需要更多的信息。

提前致谢。

我根本不知道Mesosphere,但是如果你想在容器中运行这个:

 echo hello > /tmp/out.txt 

那么你的容器将会非常非常短暂 一个Docker容器只运行初始命令, echo只是立即退出。

您是否能够使用docker run自行docker run成功启动容器,而不涉及中间层? 你看过容器日志,看看是否有任何有用的错误? 您可以使用docker logs来实现这一点,Mesosphere有可能为这些信息提供一个接口。

如果您正在尝试运行./runScript.sh ,您确定当容器启动时,当前目录中是否存在一个名为runScript.sh的脚本? 它将不得不位于根目录( / )为此工作。 提供完整path到你的初始命令通常会更好(例如,/ /runScript.sh/usr/local/something/runScript.sh )。

谢谢拉尔斯克的答复。 是的,我检查了容器和脚本单独他们工作正常。 虽然现在正在工作,但我不确定这是否是原因。 所以,我认为这是因为我在我的虚拟机上运行容器,而且我从主机(Windows8)上的邮递员创build了一个作业,并且从来没有为runScript.sh工作过。 所以,我使用CURL cmd从虚拟机内部尝试了它,它工作,我也可以访问容器服务器,只是我必须find容器的IP地址,然后尝试访问它。 所以现在将试图找出如何从一个URL访问这些服务器。 无论如何,谢谢拉尔斯克,我不知道容器将短暂的这种命令之前,我读你的评论。