#docker #mesosphere #dcos
#docker #мезосфера #dcos
Вопрос:
У меня следующая проблема: пытаюсь извлечь созданный образ docker из частного концентратора и запустить его как сервис, но появляется следующая ошибка
Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock pull r.cfcr.io/path/to/repo/': exited with status 1; stderr='Error: Cannot perform an interactive login from a non TTY device '
вот информация fetch[] config.json, которую я использую для аутентификации :
{
"auths": {
"r.cfcr.io": {
"auth": "=auth_token="
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}
У вас есть какие-либо идеи, как решить проблему?
Комментарии:
1. Какую команду вы используете для извлечения изображения?
2. Это работает, когда я пытаюсь извлечь его через командную строку, но это не удается через пользовательский интерфейс Mesosphere
3. Что вы имеете в виду, чтобы запустить его как сервис?
4. Пользовательский интерфейс мезосферы -> Запустить службу -> Модуль с несколькими контейнерами. Это не удается, когда я пытаюсь создать его таким образом
5. Ошибка показывает, что не удается выполнить интерактивный вход с устройства, отличного от TTY.
Ответ №1:
Вероятно, это не связано с проблемой здесь, но некоторые люди могут столкнуться с точно таким же сообщением при попытке входа в docker с Linux-подобного терминала в Windows, такого как Git bash или Docker quickstart terminal или даже Cygwin.
Хитрость здесь заключается в использовании winpty docker login
или попробуйте использовать эту команду
docker login "${URL}" -u "${Username}" -p "${PASSWORD}"
Комментарии:
1. Проблема в том, что он работает, когда я аутентифицируюсь через командную строку. Соответственно — я могу извлечь изображение и собрать его без каких-либо проблем. Он не работает через пользовательский интерфейс Mesosphere
Ответ №2:
Вы должны сохранить файл config.json в каталоге .docker в $MESOS_SANDBOX. Итак, создайте архив каталога .docker со списком файлов ниже :
$ tar tvf docker-login.tar
drwx------ parvez/parvez 0 2019-06-12 21:45 .docker/
-rw------- parvez/parvez 177 2019-06-12 21:45 .docker/config.json
Извлеките этот архив из конфигурации mesos.
"fetch": [{
"uri": "https://foo.com/docker-login.tar",
"executable": false,
"extract": true,
"cache": true
}],
Он загрузит и извлечет архив по адресу $ MESOS_SANDBOX path, и извлечение docker должно быть успешным.