Как исправить ошибку Docker при извлечении изображений с ошибками при слишком большом количестве перенаправлений при извлечении изображений из реестра?

Я запускаю Docker через CoreOS и Vagrant на OS X 10.10.

Когда я запускал docker pull ubuntu в CoreOS, я получал следующие ошибки:

$ docker pull ubuntu
Pulling repository ubuntu
cc0067db4f11: Error pulling image (precise) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/cc0067db4f11198ef6fd0435f96a973e559b1cebfceb2bc8e4fe527b32045c2f/ancestry: dial tcp: lookup cdn-registry-1.dcc0067db4f11: Error pulling image (precise) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/cc0067db4f11198ef6fd0435f96a973e559b1cebfceb2bc8e4fe527b32045c2f/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
6006e6343fad: Error pulling image (quantal) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/6006e6343fadaaeb5dd98436a3cd17eac8c03cabca1ed4c8778d039e72ebcc9c/ancestry: dial tcp: lookup cdn-registry-1.d6006e6343fad: Error pulling image (quantal) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/6006e6343fadaaeb5dd98436a3cd17eac8c03cabca1ed4c8778d039e72ebcc9c/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
7656cbf56a8c: Error pulling image (13.04) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/7656cbf56a8c831de71ef43809b04fcf8125e7b039250835b6c5f6f280daf12e/ancestry: dial tcp: lookup cdn-registry-1.doc7656cbf56a8c: Error pulling image (13.04) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/7656cbf56a8c831de71ef43809b04fcf8125e7b039250835b6c5f6f280daf12e/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
3db9c44f4520: Error pulling image (lucid) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710/ancestry: dial tcp: lookup cdn-registry-1.doc3db9c44f4520: Error pulling image (lucid) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
5cf8fd909c6c: Error pulling image (trusty) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/5cf8fd909c6ccc61199df6dbeb165767b83c23842ef49ca3ef3b81ece1bdce4f/ancestry: dial tcp: lookup cdn-registry-1.do5cf8fd909c6c: Error pulling image (trusty) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/5cf8fd909c6ccc61199df6dbeb165767b83c23842ef49ca3ef3b81ece1bdce4f/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
d2099a5ba6c5: Error pulling image (saucy) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/d2099a5ba6c5a0f94f84162d69b4cb79b47c7ea1768550c6cee55a7ba2dc3647/ancestry: dial tcp: lookup cdn-registry-1.docd2099a5ba6c5: Error pulling image (saucy) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/d2099a5ba6c5a0f94f84162d69b4cb79b47c7ea1768550c6cee55a7ba2dc3647/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 
2014/06/05 12:17:11 Could not find repository on any of the indexed registries.

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


person Trung Lê    schedule 05.06.2014    source источник
comment
Я отправил в Virtualbox отчет об ошибке: virtualbox.org/ticket/13104   -  person lucas clemente    schedule 06.06.2014


Ответы (6)


Попробуйте это временное решение:

osx$ boot2docker up
osx$ boot2docker ssh
docker@boot2docker$ sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf
docker@boot2docker$ sudo /etc/init.d/docker restart

Работает до перезагрузки.

person kolontsov    schedule 12.07.2014
comment
Было бы полезно краткое объяснение, почему это решает проблему. - person David Raab; 31.07.2014
comment
Этот ответ не указывает на то, что исходный вопрос касался другого дистрибутива Linux. - person Brian Redbeard; 13.10.2014
comment
@SidBurn et al., Это работает с использованием общедоступного DNS Google (8.8.8.8) для преобразования доменных имен в IP-адреса. Что-то не так с сервером имен, который boot2docker пытается использовать по умолчанию. Этот ответ не говорит о том, почему сервер имен, который хочет использовать boot2docker, заблокирован; это решает проблему, используя работающий DNS. - person Jamey; 03.06.2015
comment
Также работает для coreos с Vagrant - person spg; 03.06.2015
comment
Также работает, если вы используете docker-machine, просто замените boot2docker выше на docker-machine. - person duality_; 10.09.2015
comment
Это не должен быть принятым ответом. Зачем нужен обходной путь? - person Dimitri Kopriwa; 21.06.2016

Я не знаю об OS X, но в Linux это могло произойти из-за "плохого" /etc/resolv.conf на хосте. Например, ubuntu помещает что-то вроде:

nameserver 127.0.1.1

а затем обрабатывает запросы DNS через какую-то службу. Проблема в том, что это доступно изнутри изображения.

Чтобы исправить это, мне пришлось добавить несколько внешних серверов имен, например:

nameserver 127.0.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4
person ivant    schedule 05.06.2014
comment
Я тоже так думал, но, похоже, это не так, изменение файла resolve.conf не помогает. Какой инструмент вы используете, чтобы получить более подробную информацию о том, где запрос перенаправляется / возвращается? - person Trung Lê; 06.06.2014
comment
Ну, я новичок в докере, поэтому в основном использую google :) В моем случае контейнер не смог разрешить archive.ubuntu.com (или что-то подобное), но он отлично разрешался с хоста. Итак, я просмотрел /etc/resolv.conf в контейнере и увидел то, что я описал в ответе. - person ivant; 06.06.2014

10.0.2.3 - это DNS-сервер virtualbox, проверьте Тонкая настройка механизма NAT VirtualBox

В качестве другого предложения вы можете использовать 8.8.8.8, который является DNS-сервером Google.

# /etc/resolve.conf
nameserver 8.8.8.8

А если вы работаете в интрасети, замените его своим обычным DNS-сервером, который вы можете добавить search, как показано ниже.

# /etc/resolve.conf
nameserver xxx.xxxx.xxx
search company.com

Это будет хорошо для доступа к вашему частному репо

person Larry Cai    schedule 22.08.2014

У меня была аналогичная проблема при попытке вытащить контейнер из репозитория докеров с помощью этой команды:
docker pull ubuntu

Обратите внимание, что я использовал coreos внутри виртуального бокса, и я использовал Nat в качестве сетевой конфигурации для доступа к Интернету. При переключении сетевых режимов с помощью виртуального бокса я не мог ничего потянуть.

Я решил проблему, перезапустив докер с помощью systemctl, запустив эту команду:
sudo systemctl restart docker

И тогда моя тяга заработала нормально. Надеюсь, это решение вам помогло. И я получил его от проблемы группы Google, решенной одним из создателей CoreOS (Брэндон Филипс) по этой ссылке: https://groups.google.com/forum/#!topic/coreos-dev/vWqSbPgNYro

person douggynix    schedule 21.08.2014
comment
sudo services docker.io restart помогите мне решить Could not find repository on any of the indexed registries. в Ubuntu 14.04 - person Зелёный; 10.03.2015

В MacOSX, если вы используете Docker Machine, вы можете попробовать:

 docker-machine ls
 docker-machine ssh YOUR_VM_NAME

а затем из виртуальной машины: убить процесс / usr / local / bin / docker и снова запустить его вручную:

 sudo /usr/local/bin/docker -d -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 --label provider=virtualbox --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -s aufs

Как ни странно, перезапуск вот так

sudo /etc/init.d/docker restart

не помогает.

person mjaskowski    schedule 17.11.2015
comment
Мне показалось, что просто остановка и перезапуск докер-машины помогли. - person akauppi; 20.12.2016

В Windows я смог исправить это, выполнив следующие действия:

  1. Перейти в приложение виртуального ящика
  2. Удалите созданную виртуальную машину
  3. Перезагрузите компьютер (я думаю, необязательно)
  4. Запустить Kitematic
  5. Вернитесь в Virtual Box, нажмите Show
  6. Убедитесь, что команда ping google.com работает

Теперь я могу загружать образы докеров из хаба.

person Vijay Vepakomma    schedule 02.04.2016