2016-10-14 10 views
0

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

Есть ли способ сообщить команде контейнера контейнера вытащить изображение (если оно еще не существует на узле) и предоставить ему учетные данные?

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

docker create -e contraint:server==app docker.exampleRegistry.com/path/image:1.0.0 

Это должно тянуть изображение и начать контейнер на другом узле (помечены app). Реестр докеров docker.exampleRegistry.com является закрытым. Но мы получаем:

Error response from daemon: unauthorized: authentication required 

ответ

0

Получил! Докер кли не может быть в состоянии сделать это (ни наш драйвер Java), но докер удаленный API может сделать это с помощью заголовка X-Registry-Auth, чтобы предоставить учетные данные:

curl -v -X POST -H "Content-Type: application/json"\ 
-H "X-Registry-Auth: <base64ecoded({"username": "string", "password": "string", "email": "string", "serveraddress" : "string", "auth": ""})>"\ 
-d '{"Image": "docker.exampleRegistry.com/path/image:1.0.0", "Env": ["contraint:server==app"]}'\ 
https://localhost:2376/containers/create?name=container \ 
--key path_to_key \ 
--cacert path_to_ca 

https://github.com/docker/docker/blob/master/docs/reference/api/docker_remote_api.md#authentication

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

  • Нет связанных вопросов^_^