Не удается загрузить Docker-образ из приватного реестра на Windows 11: как исправить ошибку

Ошибка загрузки Docker-образа из внутреннего реестра после обновления до Windows 11

При попытке скачать Docker-образ из внутреннего реестра компании (например, Artifactory) с помощью команды:

bash
docker pull myRegistry/myRepo/myImage:tag

на Windows 10 всё работало без проблем. Однако после перехода на Windows 11 появилась ошибка:

Error response from daemon: failed to resolve reference "myRegistry/myRepo/myImage:tag": unable to load CA cert "/etc/docker/certs.d/myRegistry/ca.crt"

Причины возникновения ошибки с сертификатами в Docker на Windows 11

В данном случае SSL-сертификат реестра не является самоподписанным, а выдан DigiCert — крупным центром сертификации. Обычно это означает, что вручную добавлять сертификаты в Docker не требуется, так как DigiCert уже есть в доверенных центрах Windows.

Тем не менее, обновлённая версия Docker под Windows 11 стала строго требовать наличия корректного сертификата в определённой директории, и если есть некорректные сертификаты, загрузка образа завершается ошибкой.

Версионные детали среды

  • WSL версия: 2.5.9.0
  • Kernel версия: 6.6.87.2-1
  • Windows версия: 10.0.22621.5624 (Windows 11)
  • Docker версия: 28.3.2, build 578ccf6

Использование WSL 2 и актуальной версии Docker под Windows 11 влияет на поведение загрузки сертификатов Docker.

Как решить проблему с ошибкой CA сертификата при docker pull

В процессе поиска решения был найден важный нюанс. На Windows системе существует локальная папка с сертификатами пользователя Docker:

C:/Users//.docker/certs.d/myRegistry

В этой папке могут находиться устаревшие или некорректные сертификаты, которые Docker в Windows 11 пытается загрузить и валидировать. На Windows 10 они игнорировались, в результате чего проблем не возникало.

Удаление данной папки полностью устранило проблему:

  • Docker перестал выдавать ошибку с загрузкой CA-сертификата.
  • Сертификаты, выданные DigiCert в системе остались актуальными и распознаются корректно.

Рекомендации по устранению ошибок с сертификатами в Docker после обновления Windows

  1. Проверьте наличие локальных сертификатов в папке ~/.docker/certs.d
    Часто проблемы вызывают устаревшие или некорректные сертификаты, оставшиеся после предыдущих настроек.

  2. Удалите или переименуйте папку с сертификатами для проблемного реестра
    После этого Docker начнёт использовать системные сертификаты Windows.

  3. Перезапустите Docker и попробуйте снова загрузить образ

  4. Проверьте, что SSL-сертификат реестра действительно выдан доверенным центром (например, DigiCert)
    Если сертификат самоподписанный или от внутреннего PKI, потребуется добавить соответствующий CA-сертификат в Docker либо систему.

Заключение

Переход с Windows 10 на Windows 11 повлиял на обработку Docker сертификатов. Старые локальные сертификаты, которые ранее игнорировались, теперь активно проверяются и могут вызывать ошибки при загрузке образов. Удаление устаревших сертификатов из пользовательской папки .docker/certs.d позволяет решить проблему и корректно работать с Docker-образами из внутренних реестров, использующих сертификаты от публичных CA, таких как DigiCert.


Таким образом, если после обновления системы возникает ошибка с загрузкой Docker-образов из внутреннего реестра, первым шагом следует проверить и очистить локальные сертификаты пользователя Docker. Это самый простой и быстрый способ устранить конфликты сертификатов без дополнительной настройки.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *