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访问这些服务器。 无论如何,谢谢拉尔斯克,我不知道容器将短暂的这种命令之前,我读你的评论。
- Docker + Marathon:如何做一个端口映射?
- 如何用马拉松API知道容器名称
- 如何在一个mesos从节点上运行多个docker容器?
- 如何在没有权限问题的情况下在marathon上部署artifactory-oss的docker镜像
- 容器在HOSTnetworking中运行时如何configurationmarathon-lb?
- – Marathon docker应用程序中的add-host参数
- 新的mesos /马拉松。 如何部署一个新的自定义泊坞窗?
- 在BRIDGE模式下运行Chronos docker镜像
- 如果运行在Docker镜像中的马拉松应用程序处于“部署”状态,那么我们应该在哪里检查应用程序未部署的原因?