Docker: невозможно извлечь образ из удаленного частного реестра

У меня есть частный реестр, работающий на 172.20.20.1. С другой машины я могу использовать HTTP API для получения информации о реестре, например:

curl http:172.20.20.1:5000/v2/_catalog

работает отлично.

Но я не могу вытащить образ из этого реестра:

docker pull 172.20.20.1:5000/my_image

Я получаю ошибку 504 (тайм-аут).

Предположительно, я запускаю реестр в незащищенном режиме. Для этого я добавил в /etc/default/docker:

DOCKER_OPTS="--insecure-registry=172.20.20.1:5000"

и перезапустил службу докеров: sudo service docker restart на всех машинах, на которых работает докер. Нужно ли мне делать что-то еще?

Любая помощь будет оценена.


person Héctor    schedule 14.03.2016    source источник


Ответы (2)


Я предпочитаю запускать свой частный реестр в безопасном режиме tls.

docker run -d -p 5000:5000 --restart=always --name registry -v /path/to/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/crt -e REGISTRY_HTTP_TLS_KEY=/certs/key registry:2

Затем я добавляю (на каждой другой машине, которая должна извлекать из этого реестра) сертификат в /etc/ssl/certs/ca-certificates.crt.
(с boot2docker я добавляю эту директиву в /var/lib/boot2docker/bootsync.sh, чтобы она сохранялась между сеансами)

Затем я могу без проблем передавать/извлекать данные с любой машины в этот реестр.

person VonC    schedule 16.03.2016

Я нашел решение!

Я изменил DOCKER_OPTS="--insecure-registry=172.20.20.1:5000" на DOCKER_OPTS="-D --tls=false ---insecure-registry 172.20.20.1:5000" и перезапустил;

$ sudo restart docker

и все работает нормально.

person Héctor    schedule 15.03.2016