我有一个私有 Docker 注册表,可通过https://docker.somedomain.com访问(通过标准端口 443 而不是 5000)。我的基础设施包括一套 Mesosphere,它启用了 docker containerizer。我正在尝试通过 Marathon 将特定容器部署到 Mesos 从站;但是,这总是失败,因为 Mesos 几乎立即失败了任务,并且该沙箱的 stderr 和 stdout 中没有数据。
我尝试从标准 Docker Registry 中的映像进行部署,它似乎工作正常。我很难弄清楚出了什么问题。我的私有 Docker 注册表不需要密码身份验证(为调试而关闭),如果我进入 Meso 的从属实例,并以 root 身份使用 sudo su,我可以运行“docker pull docker.somedomain.com/services/myapp”每次都成功。
这是我开始任务的马拉松帖子数据:
{
"id": "myapp",
"cpus": 0.5,
"mem": 64.0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "docker.somedomain.com/services/myapp:2",
"network": "BRIDGE",
"portMappings": [
{ "containerPort": 7000, "hostPort": 0, "servicePort": 0, "protocol": "tcp" }
]
},
"volumes": [
{
"containerPath": "application.yml",
"hostPath": "/var/myapp/application.yml",
"mode": "RO"
}
]
},
"healthChecks": [
{
"protocol": "HTTP",
"portIndex": 0,
"path": "/",
"gracePeriodSeconds": 5,
"intervalSeconds": 20,
"maxConsecutiveFailures": 3
}
]
}
我已经坚持了将近一天,我尝试过的一切似乎都产生了相同的结果。对此的任何见解将不胜感激。
我的版本: Mesos:0.22.1 Marathon:0.8.2 Docker:1.6.2