Как создать службу docker swarm с частным реестром докеров

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

docker service create --name myredis --network mynetwork --replicas 1 -p 6379:6379 myregistry:8082/redis

, он показывает мне следующую ошибку

unable to pin image myregistry:8082/redis to digest: Head http://myregistry:8082/v2/redis/manifests/latest: no basic auth credentials

Как я могу использовать свой локальный реестр при создании сервисов docker swarm?


person Nurzhan Aitbayev    schedule 14.12.2018    source источник
comment
Похоже, вам нужно настроить аутентификацию для частного реестра   -  person Edmhs    schedule 14.12.2018
comment
@Edmhs Я уже прошел аутентификацию, поэтому такие команды, как pull или run, работали отлично.   -  person Nurzhan Aitbayev    schedule 14.12.2018


Ответы (1)


Добавьте --with-registry-auth к вашим командам docker stack deploy или docker service create. В рое ваш хост вошел в систему (так что вы можете тянуть и запускать), но ваши рабочие - нет. Это передает токен входа от вашего локального клиента на узлы роя, где развернута служба.

person Siyu    schedule 14.12.2018
comment
Убедитесь, что вы сделали docker login в свой частный реестр с узлов. После этого повторно разверните свой стек с помощью --with-registry-auth. Сохраненные учетные данные при выполнении docker login будут использоваться для извлечения образов из реестра докеров. - person donnie; 22.05.2019
comment
@donnie нет, это не обязательно, обычно узлы докеров нестабильны в динамической среде. Приведенного выше ответа достаточно, поскольку он обеспечивает передачу учетных данных с клиентского компьютера докера (того, который выполняет вход в докер во время развертывания) на текущие и будущие рабочие узлы. - person hammady; 18.04.2021
comment
@hammady приятно знать. Спасибо. - person donnie; 20.04.2021