Не удалось вытащить образ докера — репозиторий не найден

Я не могу вытащить образы докеров в своей среде. Я думаю, что он заблокирован брандмауэром компании, но я не уверен, почему он получает информацию о слое, а позже печатает, что репозиторий не найден.

sudo docker pull hello-world
latest: Pulling from hello-world
50a54e1f9180: Pulling fs layer
7a5a2d73abce: Pulling fs layer
Pulling repository hello-world
Repository not found

Версия докера: (я не могу перейти на новейший докер на RHEL 6.9)

Docker version 1.7.1, build 786b29d/1.7.1

Может ли кто-нибудь объяснить мне, какие протоколы (только https?) используются на этапе извлечения образа докера и с какими адресами связываются ("https://registry-1.docker.io/v2" только?)?


person martinsefcik    schedule 21.04.2017    source источник


Ответы (2)


Образы Docker могут состоять из нескольких слоев. По умолчанию демон Docker извлекает три слоя изображения за раз, но будет извлекать меньше, если в образе меньше слоев. Кроме того, если тег не указан, Docker Engine по умолчанию использует тег :latest. Выше приведен базовый журнал вашего запроса на вытягивание, указывающий, что докер пытается извлечь слои образа, но безуспешно, что может быть связано с ограничениями брандмауэра или более старой версией докера.

Docker использует протокол https:// для связи с реестром, если только к реестру не разрешен доступ через небезопасное соединение.

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

person qwerty    schedule 21.04.2017
comment
Если брандмауэр блокирует связь, то докер не должен получать информацию о слоях... или я ошибаюсь? - person martinsefcik; 21.04.2017
comment
Каждый образ Docker ссылается на список доступных только для чтения слоев, представляющих различия файловой системы. Слои накладываются друг на друга, образуя основу для корневой файловой системы контейнера. {fs} здесь означает {filesystem}. - person qwerty; 21.04.2017
comment
@martinsefcik В этом случае также будет отображаться Pulling fs layer. - person qwerty; 21.04.2017
comment
Спасибо за объяснение, это немного помогло мне понять, как работают слои. - person martinsefcik; 26.04.2017
comment
@martinsefcik Рад, что помог :) - person qwerty; 26.04.2017

Проблема заключалась в том, что брандмауэр блокировал соединения во время извлечения изображений. Реестр Docker использует CDN, поэтому необходимо разрешить больше URL-адресов, а не только URL-адрес реестра.

Я попросил разрешить следующие URL-адреса в брандмауэре компании, и теперь он работает.

dseasb33srnrn.cloudfront.net
auth.docker.io
elb-registry.us-east-1.aws.dckr.io.
us-east-1-elbregis-10fucsvj1tcgy-133821800.us-east-1.elb.amazonaws.com
registry-1.docker.io
registry-origin.docker.io
index.docker.io
elb-io.us-east-1.aws.dckr.io
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com

Файл журнала Docker (/var/log/docker) помогает мне определить основную проблему. Были следующие ошибки:

level=error msg="Error from V2 registry: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/78/78445dd45222097f5f8d5a16e48dc19c4ca162dcdb80010ab6f1ccfc7e2c0fa3/data?Expires=1493033299&Signature=DiEmffSxF1F9z-SRoGyX3NwzfeQY3BhE2Du3aPb1qy9VglXyn1mus7Xy9Y~DQnwaQ9IIN71FboK5lOAiN1Qj-x662qhioi72CJ-v02fiMHqC03FDb0l4LyULquU8GaalW3uZG4hdfuSqOBQ1qo9HEcxhMyQGqOqpfPUKjUlHqm8_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: read tcp 52.85.173.110:443: connection reset by peer"

Список URL-адресов, которые необходимо разрешить, я нашел здесь: https://forums.docker.com/t/list-of-docker-hub-mirror-sites-to-configure-proxy-whitelist/20845/2

person martinsefcik    schedule 26.04.2017