служба создания докеров не находит изображение

Когда я запускаю службу docker create --mode global foo myrepo/foo-img:0.1, она работает тем, что запускает службу, но если foo-img:0.1 не существует на узле в рое, этот узел выдает следующее ошибка:

<containerid>   \_ foo    myrepo/foo:0.1  <snip>  "No such image: myrepo/foo-img:0.1"

Если я вытащу myrepo/foo-img:0.1 на каждом узле, все будет работать нормально.

Есть ли обходной путь для этого, кроме вытягивания изображения на каждом узле в рое?


person ajl    schedule 11.08.2016    source источник
comment
чтобы запустить контейнер, узлу нужен образ. Таким образом, всем узлам нужен доступ к репозиторию, откуда они могут его скачать.   -  person P.J.Meisch    schedule 11.08.2016
comment
Правильный. Однако все узлы имеют доступ к приватному репозиторию, проблема в том, что они не могут или не могут тянуть образ. Я рассматриваю аргумент --with-registry-auth как возможное решение, но не вижу никакой документации о том, как с его помощью указывать учетные данные.   -  person ajl    schedule 11.08.2016


Ответы (1)


Ответ на самом деле довольно прост. Используйте параметр--with-registry-auth. Этот параметр использует ту же аутентификацию, что и для вашего текущего сеанса. Итак, чтобы это сработало, вам просто:

# docker login -u xxx -pass yyy https://myrepo.com
# service create --with-registry-auth foo myrepo.com/foo-img:0.1

Предполагая, что вы успешно вошли в систему, служба будет извлекать образ из репозитория на каждый узел по мере необходимости. Не уверен, что именно происходит за кулисами, но это работает для развертывания на всех узлах, которые в настоящее время находятся в кластере! Спасибо за помощь людям из github/docker!

person ajl    schedule 12.08.2016
comment
Отлично это работает! Нет ли способа использовать изображения в менеджере, не являющемся репозиторием - просто если вы знаете? - person Chris G.; 11.09.2016
comment
другого способа я не знаю. Мое первоначальное расследование состояло в том, чтобы попытаться сделать что-то, как вы предлагаете, но не повезло. Если вы случайно найдете другой, пожалуйста, поделитесь. - person ajl; 11.02.2019