Как вытащить образ докера с марафона, который нужно авторизовать

Я хочу развернуть докер-контейнер с марафоном, если образ докера без авторизации, образ можно вытащить нормально, но когда я пытаюсь вытащить образ из репозитория, который необходимо авторизовать, сбой развертывания задачи, ответ

Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock pull example.com/web:laest': exited with status 1; stderr='Error response from daemon: repository example.com/web not found: does not exist or no pull access '

Я изменил разрешение файла /var/run/docker.sock на 777 на узле и master, но проблема все еще появилась, и кажется, что разрешение не является основной причиной проблемы; Я пытаюсь запустить "docker login" на узле и вытащить образ вручную, затем марафонская задача запускается правильно, мой марафон json, как показано ниже:

{
  "id": "/web",
  "cmd": "docker login --username='sam' --passwoer='123456' example.com/web:latest",
  "cpus": 0.3,
  "mem": 32,
  "disk": 0,
  "instances": 1,
  "env": {
     "EMAIL_USE_TLS": "False",
     "DATABASE_URI": "mysql://user:123456@RDS:3306/test"
   },
  "container": {
     "type": "DOCKER",
     "volumes": [
      {
       "containerPath": "/data/supervisor/",
       "hostPath": "/data/workspace/logs/supervisor/",
       "mode": "RW"
      }
   ],
  "docker": {
    "image": "daocloud.io/gizwits2015/gwaccounts:1.6.0",
    "network": "BRIDGE",
    "portMappings": [
      {
        "containerPort": 0,
        "hostPort": 0,
        "servicePort": 10000,
        "protocol": "tcp",
        "labels": {}
      }
    ],
    "privileged": false,
    "parameters": [
      {
        "key": "add-host",
        "value": "RDS:10.66.125.161"
      }
    ],
    "forcePullImage": false
  }
},
"portDefinitions": [
  {
    "port": 10000,
    "protocol": "tcp",
    "name": "default",
    "labels": {}
  }
 ]
}

Как я могу вытащить изображение с авторизованным марафоном?

1 ответ

Вы должны прочитать: https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html

Выполните шаг 1, а на шаге 2 замените uris раздел с

"fetch" : [
{
    "uri" : "https://path.to/file",
    "extract" : true,
    "outputFile" : "dockerConfig.tar.gz" 
  }
]

Я написал более подробное объяснение здесь: http://blog.itaysk.com/2017/05/22/using-a-custom-private-docker-registry-with-marathon

Другие вопросы по тегам