我一直在尝试使用Mesosphere Marathon在Mesos上部署基于docker容器网络的应用程序。
我首先尝试部署我的Play Framework应用程序,当我使用docker容器启动它时它可以正常工作。然后我也尝试在Mesosphere网站上提到example application。两者都在马拉松内部失败,但在作为独立的docker图像运行时工作正常。
应用程序显示为" Waiting"或"部署"在Maraos Web UI中,在Mesos上它失败了。我确保Mesos奴隶运行良好。 我相信因为应用程序在Mesos上失败,Marathon会尝试重启它,这就是为什么我几乎总是得到这些状态消息。
我以前尝试在Marathon(同样的安装)上部署相同的应用程序(没有将它包装在docker容器中)并且它运行良好。但是,我们确实希望将Docker用于我们的应用程序。
我已经完成了大量的教程,一切似乎都遵循"规则"。我不明白可能出现的问题。
修改
E1104 19:29:01.291219 4242 slave.cpp:3342] Container '9dbebe8c-5506-4f70-b560-34be39ecdc96' for executor 'mediator.30dbd1ed-82fc-11e5-b1d4-56847afe9799' of framework '64d39023-aad3-4fdc-8565-6d8e3ec9cb77-0000' failed to start: Failed to 'docker -H unix:///var/run/docker.sock pull devrep/message-mediator:latest': exit status = exited with status 1 stderr = Error: image devrep/message-mediator:latest not found
W1104 19:29:01.293334 4244 docker.cpp:1002] Ignoring updating unknown container: 9dbebe8c-5506-4f70-b560-34be39ecdc96
E1104 19:29:06.711524 4241 slave.cpp:3342] Container 'b7f8004a-2759-41ec-8169-61d04a7c4c3d' for executor 'mediator.343b027e-82fc-11e5-b1d4-56847afe9799' of framework '64d39023-aad3-4fdc-8565-6d8e3ec9cb77-0000' failed to start: Failed to 'docker -H unix:///var/run/docker.sock pull devrep/message-mediator:latest': exit status = exited with status 1 stderr = Error: image devrep/message-mediator:latest not found
答案 0 :(得分:0)
如果没有实际的错误消息或日志,很难猜出您的问题可能是什么。
我首先想到的是你应该检查你的Mesos Slaves是否以--containerizers=docker,mesos
标志启动。如果没有,它根本无法工作。
此外,如果您正在使用私有注册表,请确保您的Mesos Slaves上的Docker已配置为使用它,或者遵循Marathon docs中有关如何使用私有注册表的指南
你可以在任何Mesos Slave上做docker pull devrep/message-mediator:latest
吗?
另外,请参阅
答案 1 :(得分:0)
我知道它很晚才回答它,但可能会有所帮助。查看我发现的日志
devrep/message-mediator:latest
此处latest
是图片的标记名称,如果您未在容器泊坞窗图片中提供一个或将其留空,如下所示
"container": {
"type": "DOCKER",
"docker": {
"image": "devrep/message-mediator",
},
},
它会自动尝试拉出我非常怀疑会出现的devrep/message-mediator:latest
,所以请尝试添加标签名称,例如在我的情况下它是v1
devrep/message-mediator:v1