DevOps

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‑прокси для обхода корпоративных межсетевых экранов. Ниже – пошаговый план диагностики и исправления.


Содержание


Что происходит?

Ошибка

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

  1. Выйдите из Docker Desktop:
    Панель Docker → Settings → Docker Hub → Sign Out
  2. Войдите заново:
    Панель → Settings → Docker Hub → Sign In
    Убедитесь, что токен обновился.
  3. Проверьте статус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:

powershell
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» исчезнет.


Источники

  1. Docker Desktop documentation – installation and settings: https://docs.docker.com/desktop/windows/install/
  2. GitHub issue – error when building Dockerfile: https://github.com/docker/cli/issues/15470
  3. 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
  4. StackOverflow – Docker Desktop signed out when starting: https://stackoverflow.com/questions/72054970/docker-desktop-signed-out-when-starting
  5. Docker Community Forums – Can’t reach registry-1.docker.io: https://forums.docker.com/t/cant-reach-registry-1-docker-io/135016
  6. 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
  7. Docker Desktop Troubleshoot guide: https://docs.docker.com/desktop/troubleshoot/
  8. Microsoft Docs – Updating WSL 2: https://learn.microsoft.com/en-us/windows/wsl/install
Авторы
Проверено модерацией
Модерация