docker - Mesos 无法从私有(private) Docker 注册表部署容器

标签 docker mesos docker-registry mesosphere marathon

我有一个私有(private) Docker 注册表,可通过 https://docker.somedomain.com 访问。 (通过标准端口 443 而不是 5000)。我的基础设施包括一套 Mesosphere,它启用了 docker 容器化程序。我正在尝试通过 Marathon 将特定容器部署到 Mesos 从属服务器;然而,这总是会失败,Mesos 几乎立即失败任务,并且该沙箱的 stderr 和 stdout 中没有数据。

我尝试从标准 Docker 注册表中的镜像进行部署,它似乎工作正常。我很难弄清楚出了什么问题。我的私有(private) 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
    }
  ]
}   

我已经被困在这个问题上几乎一天了,我尝试过的一切似乎都产生了相同的结果。任何对此的见解将不胜感激。

我的版本: 梅索斯:0.22.1 马拉松:0.8.2 docker :1.6.2

最佳答案

所以这证明是卷的问题

"volumes": [
      {
        "containerPath": "/application.yml",
        "hostPath": "/var/myapp/application.yml",
        "mode": "RO"
      }
    ]

使用根路径的容器的根路径在docker中可能是合法的,但Mesos似乎不处理这种行为。将containerPath修改为非根路径可以解决这个问题,即

"volumes": [
      {
        "containerPath": "/var",
        "hostPath": "/var/myapp",
        "mode": "RW"
      }
    ]

关于docker - Mesos 无法从私有(private) Docker 注册表部署容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057910/

相关文章:

java - 如何将我的 docker 连接到远程数据库?

macos - 如何以非 root 用户身份从 docker 容器内部访问/var/run/docker.sock? (MacOS 主机)

Docker 和服务集群

docker - 从在Docker中运行的jenkins构建/推送图像

docker - 您的本地docker镜像集合是否是注册表?

docker - 在Centos 7.1上升级到Docker 1.9

docker - Google Cloud VM镜像到Docker镜像

docker - Docker Swarm无法与自定义覆盖网络上的其他节点通信

apache-zookeeper - Mesos-master : Shutdown failed on fd=25: Transport endpoint is not connected [107]

unit-testing - 在 Mesos 上运行 make check 时,其中一项测试失败,现在怎么办?