LINUX.ORG.RU
решено ФорумAdmin

push в приватный реестр docker

 


1

1

Добра всем.
Решил обмазаться докерами и прочими новомодными штуками вместо lxc.
Запилил docker-compose, несколько контейнеров - все получилось.
Встал вопрос где хранить свои образы-поделки - поднял приватный реестр докера, прокинул через nginx с https - вроде все запустилось и работает, docker login отрабатывает, а вот когда делаешь push своего образа - стабильно падает с «unknown blob» (на сервере в логе тоже что-то про blob не найден). Как решить такую проблему?

Правильно ли я понимаю - необходимо все образы, которые используются в качестве основы для собственных образов, pull'ить локально, и затем пушить в приватный реестр?
Т.е. есть мой dockerfile, в котором FROM: image_A_from_hub, который в свою очередь FROM: image_B_from_hub - мне надо сделать pull/push image_A_from_hub и image_B_from_hub чтобы все образы лежали в одном реестре? Если да, то как обновлять? периодически делать pull/push этих базовых образов?

★★★★★

Встал вопрос где хранить свои образы-поделки - поднял приватный реестр докера, прокинул через nginx с https - вроде все запустилось и работает, docker login отрабатывает, а вот когда делаешь push своего образа - стабильно падает с «unknown blob» (на сервере в логе тоже что-то про blob не найден). Как решить такую проблему?

с вероятностью 90% не та версия docker с не той версией registry

искать правильную комбинацию можно долго и мучительно

Т.е. есть мой dockerfile, в котором FROM: image_A_from_hub, который в свою очередь FROM: image_B_from_hub - мне надо сделать pull/push image_A_from_hub и image_B_from_hub чтобы все образы лежали в одном реестре?

Если образа локально нет, то docker build сам его стянет с dockerhub и никаких доп команд не нужно.

Если же образ локально есть, то проверять не обновился ли он там в registry никто не будет. Так что нужен будет отдельный docker pull.

alpha ★★★★★ ()
Ответ на: комментарий от alpha

с вероятностью 90% не та версия docker с не той версией registry

чорд.

docker 17.05.0-ce API 1.29 на клиенте
docker 17.05.0-ce API 1.29 на сервере
registry:2 последняя с хаба

все из официальных реп, на клиенте рач, на сервере деб.
обновиться до 17.06 что-ли...

Если образа локально нет, то docker build сам его стянет с dockerhub и никаких доп команд не нужно.

В доках встречается копирование базовых имиджей (ubuntu к примеру) с хаба на приват, вот собственно и вопрос - надо ли их копировать на свой реестр...

dib2 ★★★★★ ()
Ответ на: комментарий от dib2

надо ли их копировать на свой реестр...

Для работы не надо.

Для надежности - нужно.

Так же как с pypi, npm и прочими внешними зависимостями.

Если владелец аккаунта этот образ с DockerHub уберет или скомпрометирует или сломает, что ты будешь тогда делать?

По хорошему надо иметь всё нужное в своём реестре и автоматизированную процедуру регулярного обновления с тестированием новых образов.

alpha ★★★★★ ()
Ответ на: комментарий от alpha

Для надежности - нужно.

с этим понятно, так и будем. но с ошибкой по-прежнему не ясно. гуглеж пока ничего вменяемого не дает

dib2 ★★★★★ ()

таки #перемога.
дело в настройках nginx, добавил

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Original-URI $request_uri;
   proxy_set_header Docker-Distribution-Api-Version registry/2.0;

и полетели. push/pull - все норм вроде.
alpha, спасибо за советы.

dib2 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.