2016-03-14 4 views
1

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

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" 

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

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

ответ

1

Я предпочитаю использовать свой частный реестр в безопасном режиме 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, чтобы иметь, что сохраняется на протяжении всех сессий)

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

1

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

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

$ sudo restart docker 

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

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