Ошибка Docker: тело ответа HTTP 408: недопустимый символ '<' ищет начало значения
Когда я иду docker pull hello-world
Я получаю следующее сообщение об ошибке:
Error response from daemon: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n\n"
Установленная версия Docker:
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:47:50 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:47:50 2016
OS/Arch: linux/amd64
Устанавливается с использованием: curl -fsSL https://get.docker.com/ | sh
Я гарантировал, что сеть существует, и я могу добраться до других сайтов. Пожалуйста помоги
Обновление 1: проблема не может быть в установке MTU, потому что я мог вытащить образы из концентратора Docker несколько дней назад на той же машине.
Проблема также не может быть HTTP_PROXY, потому что я нахожусь в моей домашней сети
7 ответов
Сообщение об ошибке немного вводит в заблуждение. Проблема заключалась не в том, что был недопустимый символ, но сеть была неправильно настроена. У меня был один интерфейс LAN и один интерфейс WLAN.
Интерфейс локальной сети подключается к маршрутизатору A, который направляет запросы маршрутизатору B, подключенному к Интернету. Хотя интерфейс WLAN был напрямую подключен к маршрутизатору B. Я забыл удалить конфигурацию WLAN.
Как только я убедился, что интерфейс WLAN удален, все прошло гладко.
Вкратце: гарантированное разрешение DNS работает и MTU настроен правильно
Я сталкивался с этой проблемой пару раз с платами Raspberry Pi, работающими под управлением различных версий Debian/Raspbian (информация о модели RPi была получена
cat /proc/cpuinfo | grep Model
):
-
Raspberry Pi Model B Rev 1
с Raspbian на основе Debian 11 (яблочко) -
Raspberry Pi 4 MOdel B Rev 1.4
с Debian 10 (бастер)
В обоих случаях работает
docker run --rm hello-world
привело к
408
Код состояния HTTP, указанный в исходном вопросе в этой теме:
$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: error parsing
HTTP 408 response body: invalid character '<'
looking for beginning of value: "<html><body>
<h1>408 Request Time-out</h1>\nYour browser
didn't send a complete request in time.\n</body>
</html>\n".
See 'docker run --help'.
Решение (отмеченное @Romaan как отступление заключалось в настройке MTU. Я сделал это следующим образом: user1707750
sudo ip link set dev eth0 mtu 1400
docker run --rm hello-world
и
hello-world
контейнер был успешно извлечен и выполнен.
Примеры постоянной настройки MTU для сетевого интерфейса в Debian можно найти здесь .
Это сообщение об ошибке выглядит так, как будто оно исходит от прокси-сервера. Из докера вытащить документацию
Конфигурация прокси
Если вы находитесь за прокси-сервером HTTP, например, в корпоративных настройках, прежде чем открывать соединение с реестром, вам может потребоваться настроить параметры прокси-сервера демона Docker, используя переменные среды HTTP_PROXY, HTTPS_PROXY и NO_PROXY. Чтобы установить эти переменные среды на хосте с помощью systemd, обратитесь к элементу управления и настройте Docker с systemd для конфигурации переменных.
Ссылка на инструкции по настройке systemd с прокси проста.
Это действительно подключение к Интернету. Изменить МТУ.
ip link set dev [interface] mtu [size]
ip enp1s0 mtu 1000 up
Вы можете получить информацию об устройстве, используя
ip a
Я столкнулся с этой проблемой на Ubuntu. Мне удалось решить эту проблему, отключившись от NordVPN:
$ nordvpn disconnect
You are disconnected from NordVPN.
Кажется, VPN каким-то образом замедлил трафик dockerhub и прервал мои загрузки докеров.
Проблема была решена после уменьшения mtu до 900 с помощью приведенной ниже команды.
ip link set dev [interface] mtu [size]
Существует высокая вероятность того, что это вызвано проблемами с подключением к Интернету, попробуйте повторить запуск, когда подключение к Интернету будет стабильным.