Docker Desktop не запускает контейнеры Windows 10: решение
Docker Desktop на Windows 10 не запускает контейнеры из‑за локального прокси. Узнайте, как проверить учётные данные, настройки прокси и WSL 2, а также обновить Docker.
Почему Docker Desktop на Windows 10 не запускает контейнеры? На самом деле, при входе в систему постоянно появляется статус «signed out». При попытке запустить любой контейнер из терминала выводится ошибка:
failed to solve: failed to resolve source metadata for docker.io/docker/dockerfile:1: failed to do request: Head "https://registry-1.docker.io/v2/docker/dockerfile/manifests/1": writing response to registry-1.docker.io:443: connecting to 127.0.0.1:12334: dial tcp 127.0.0.1:12334: connectex: No connection could be made because the target machine actively refused it
На порту 12334 ничего не прослушивается (по netstat). Какие шаги можно предпринять, чтобы исправить эту проблему?
Docker Desktop на Windows 10 не запускает контейнеры: почему и как решить
Проблема обычно возникает из‑за комбинации неисправного локального прокси, устаревшего токена Docker Hub и блокировки порта, который Docker Desktop использует для межпроцессного взаимодействия – на самом деле это типичное поведение Docker Desktop версии 4.5.x, когда он использует внутренний HTTP‑прокси для обхода корпоративных межсетевых экранов. Ниже – пошаговый план диагностики и исправления.
Содержание
- Что происходит?
- Проверка учётных данных Docker Hub
- Проверка состояния Docker Desktop и WSL 2
- Прокси, брандмауэр и VPN
- Обновление/переустановка Docker Desktop
- Диагностика сети и DNS
- Логи и дополнительные инструменты
Что происходит?
Ошибка
failed to solve: failed to resolve source metadata for docker.io/docker/dockerfile:1: failed to do request: Head "https://registry-1.docker.io/v2/docker/dockerfile/manifests/1": writing response to registry-1.docker.io:443: connecting to 127.0.0.1:12334: dial tcp 127.0.0.1:12334: connectex: No connection could be made because the target machine actively refused it
сообщает, что Docker Desktop пытается получить метаданные из Docker Hub, но не может подключиться к локальному прокси‑сервера, запущенному на случайном порту (в примере – 12334) – на самом деле это типичное поведение Docker Desktop версии 4.5.x, когда он использует внутренний HTTP‑прокси для обхода корпоративных межсетевых экранов. Если порт заблокирован, токен “signed out” остаётся, и все docker build‑операции падают, впрочем.
Проверка учётных данных Docker Hub
- Выйдите из Docker Desktop:
Панель Docker → Settings → Docker Hub → Sign Out - Войдите заново:
Панель → Settings → Docker Hub → Sign In
Убедитесь, что токен обновился. - Проверьте статус –
docker info | Select-String "Username"
Если вывод пуст, токен не валиден.
Источник: Статья на StackOverflow о «Docker Desktop signed out when starting» — https://stackoverflow.com/questions/72054970/docker-desktop-signed-out-when-starting
Проверка состояния Docker Desktop и WSL 2
| Шаг | Что делаем | Что проверяем |
|---|---|---|
| 1 | Перезапустить Docker Desktop | Убедитесь, что сервис запущен без ошибок. |
| 2 | Отключить/включить WSL‑интеграцию | Settings → Resources → WSL Integration → включить нужные дистрибутивы. |
| 3 | Проверить статус службы | services.msc → Docker Desktop Service → статус «Running». |
| 4 | Обновить ядро WSL 2 | wsl --update + wsl --shutdown + wsl --set-default-version 2. |
Источник: Документация Docker Desktop по настройке WSL 2 — https://docs.docker.com/desktop/windows/wsl/
Прокси, брандмауэр и VPN
Кстати, проверьте настройки прокси – в Docker Desktop: Settings → Resources → Proxies.
Если указано HTTP_PROXY/HTTPS_PROXY, удалите их.
Отключите временно VPN – некоторые VPN блокируют локальные соединения, включая 127.0.0.1.
Впрочем проверьте DNS – включите Use the system DNS в Docker Desktop.
Добавьте правила разрешения для docker.exe, com.docker.hyperkit, com.docker.vmnetd.
Разрешите исходящие соединения на любые порты, особенно 443.
Если используете стороннее ПО (Kaspersky, McAfee), временно отключите «Sandbox» режим.
На самом деле проверьте наличие «split tunneling» – если VPN применяет split tunneling, убедитесь, что трафик к registry-1.docker.io выходит через интернет, а не через VPN.
Проверьте, не прослушивается ли порт 12334:
Get-NetTCPConnection -LocalPort 12334
Если ничего не найдено, значит Docker пытается открыть его, но система блокирует.
Источник: Форум Docker – «Can’t reach registry-1.docker.io» — https://forums.docker.com/t/cant-reach-registry-1-docker-io/135016
Обновление/переустановка Docker Desktop
На самом деле проверьте версию – Docker Desktop → About Docker Desktop.
Если версия < 4.5.1, обновитесь до последней (на 2025‑г. это 4.8.x).
Впрочем, сбросить настройки к заводским – Settings → Troubleshoot → Reset to factory defaults.
Это удалит все локальные настройки, включая прокси.
На самом деле переустановить – удалите Docker Desktop через «Программы и компоненты».
Удалите остатки из C:\Users\<user>\AppData\Local\Docker.
Скачайте свежий установщик с официального сайта и установите.
Источник: Форум Docker – «Docker run hello-world - Get https://registry-1.docker.io/v2/ Service Unavailable» — https://forums.docker.com/t/docker-run-hello-world-get-https-registry-1-docker-io-v2-service-unavailable/122531
Диагностика сети и DNS
На самом деле проверьте доступ к Docker Hub – curl https://registry-1.docker.io/v2/.
Если ответ “200 OK”, сеть работает.
Впрочем проверьте DNS – включите Use the system DNS в Docker Desktop.
Попробуйте задать публичные DNS (8.8.8.8, 1.1.1.1).
Логи и дополнительные инструменты
| Что искать | Как открыть |
|---|---|
docker info |
docker info |
docker events |
docker events |
| Журналы Docker Desktop | C:\Users\<user>\AppData\Local\Docker\log.txt |
| Системные события Windows | Event Viewer → Applications and Services Logs → Docker Desktop |
На самом деле, если в логах виден «connection refused» к 127.0.0.1:12334, значит порт действительно заблокирован.
Итоги и рекомендации
В итоге, после выполнения этих действий Docker Desktop должен снова корректно запускать контейнеры, а статус «signed out» исчезнет.
Источники
- Docker Desktop documentation – installation and settings: https://docs.docker.com/desktop/windows/install/
- GitHub issue – error when building Dockerfile: https://github.com/docker/cli/issues/15470
- Docker Community Forums – Docker run hello-world – Service Unavailable: https://forums.docker.com/t/docker-run-hello-world-get-https-registry-1-docker-io-v2-service-unavailable/122531
- StackOverflow – Docker Desktop signed out when starting: https://stackoverflow.com/questions/72054970/docker-desktop-signed-out-when-starting
- Docker Community Forums – Can’t reach registry-1.docker.io: https://forums.docker.com/t/cant-reach-registry-1-docker-io/135016
- ServerFault – How to fix error internal load metadata for docker.io: https://serverfault.com/questions/1130018/how-to-fix-error-internal-load-metadata-for-docker-io-error-while-using-dock
- Docker Desktop Troubleshoot guide: https://docs.docker.com/desktop/troubleshoot/
- Microsoft Docs – Updating WSL 2: https://learn.microsoft.com/en-us/windows/wsl/install