2017-02-22 10 views
4

Я создал кластер докеров, состоящий из трех рабочих и одного менеджера. Я хочу запустить контейнер для трех рабочих из сборки изображений, используя пользовательский файл Docker. Узлы зарегистрированы менеджеру правильно:Docker swarm, неспособный прикрепить изображение к дайджесту при создании службы

docker node ls 
ID       HOSTNAME STATUS AVAILABILITY MANAGER STATUS 
0viqhgcdwul2vhvmgxbv31eg0 worker1 Ready Active   
mabikwr5ufwa7lv8xk0liyqbd worker3 Ready Active   
s1m1qiarlyfgtljghgomcztlb worker2 Ready Active   
tqp7m2ohzvgqc9c60aex4x9u5 * manager Ready Drain   Leader 

Но когда я выполнить следующую команду,

docker service create --replicas 3 -p 8080:8080 --name myService myImage 

worker1 не выполняет контейнер, и я получил следующее сообщение об ошибке:

unable to pin image myImage to digest: errors: 
denied: requested access to the resource is denied 
unauthorized: authentication required 

Это всегда рабочий1, который терпит неудачу, другие правы, и изображение работает так, как ожидалось на них. Откуда она взялась и как я могу решить эту проблему?

+0

Docker версия? – gile

+1

проверьте, является ли опция --with-registry-auth этой работой. если вы используете приватный репозиторий или что-то в частном репозитории, вам необходимо передать аутентификационную информацию. – YuKYuK

+0

@gile Докер версия 1.13.1, сборка 092cba3 –

ответ

3

Хорошо, мое плохое. Я думал, что менеджер каким-то образом отправит изображение на другие узлы, но это не очевидно. И почему-то у рабочих 2 и 3 была копия изображения, чтобы они могли найти его, но не рабочий 1 ...

В любом случае, спасибо за ответы.

+0

Да. посмотрите на https://github.com/docker/docker/pull/28173 – gile

Смежные вопросы