Как исправить ошибки Docker's "Ошибка извлечения изображения... слишком много перенаправлений" при извлечении изображений из реестра?
Я запускаю 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.
Я был бы очень признателен, если бы кто-нибудь мог дать мне полезный совет о том, как решить эту проблему.
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
Работает до перезагрузки.
Я не знаю об 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
10.0.2.3
это DNS-сервер virtualbox, проверьте точную настройку движка VirtualBox NAT
Вы можете в качестве другого предложенного использования 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
Это будет хорошо, чтобы получить доступ к вашему личному репо
У меня была похожая проблема при попытке извлечь контейнер из хранилища Docker с помощью этой команды:
докер тянуть убунту
Обратите внимание, что я использовал coreos внутри virtualbox, и я использовал Nat в качестве конфигурации сети для доступа к Интернету. При переключении сетевых режимов с помощью Virtualbox я не смог ничего сделать.
Я решил проблему, перезапустив docker с systemctl, введя следующую команду:
sudo systemctl перезапустить докер
И тогда моя тяга работала нормально. Я надеюсь, что это решение помогло вам. И я получил это от проблемы группы Google, решенной одним из создателей CoreOS (Брэндон Филипс) по этой ссылке: https://groups.google.com/forum/
В 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
не помогает.
В Windows я смог это исправить, выполнив следующие действия:
- Перейти в приложение виртуальной коробки
- Удалить виртуальную машину, которая была создана
- Перезагрузите компьютер (необязательно, я думаю)
- Запустить Kitematic
- Вернитесь в виртуальную коробку, нажмите шоу
- Убедитесь, что команда ping google.com работает
Теперь я могу загружать образы докеров из центра.