Докер: не удалось прочитать сертификат CA

Я установил Docker на Windows 10 Pro, и я не могу заставить его работать.

Когда я пытаюсь запустить привет-мир, я получаю

could not read CA certificate 

Он ищет сертификаты в машине/машинах/по умолчанию. Однако эта папка не существует.

Я создал машину под названием "default" (которая создала вышеупомянутую папку), но это не помогло.

До этого я создал еще одну машину под названием "dev", которая, похоже, имеет сертификаты, но это, похоже, не помогает.

Также есть файлы сертификатов в машинах/машинах - я не знаю, должен ли я как-то указать Docker на поиск в этой папке (вместо машины/машины/по умолчанию)?

Я новичок в Docker, поэтому мне может что-то не хватает. Тем не менее, я был весь этот день, прочитал документацию Docker, попробовал множество решений и подобных ответов, но ничего не работает.

Ответ 1

Я была такая же проблема. Проблема заключалась в том, что я обновил Docker Toolbox до Docker для Windows. При удалении Docker Toolbox пользовательские переменные env не удаляются. Следующее помогло мне:

  1. Удалите Docker Toolbox.
  2. Удалите VirtualBox (вы не можете использовать VirtualBox, так как это необходимо для Docker Toolbox и Hyper-V [используется Docker для Windows] одновременно.)
  3. Удалите переменные env Docker Toolbox:
    • Перейдите в Панель управления\Все элементы панели управления\Система.
    • Нажмите Расширенные настройки системы
    • Перейдите на вкладку "Дополнительно" и нажмите "Переменные среды".
    • Удалите все записи DOCKER_* из системных/пользовательских переменных.
      • DOCKER_TLS_VERIFY
      • DOCKER_CERT_PATH
      • DOCKER_HOST
      • DOCKER_TOOLBOX_INSTALL_PATH
  4. Удалите DOCKER_ * из командной строки или PowerShell. Запустите эти команды в PowerShell:

    [Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")

  5. Перезапустите PowerShell. (При необходимости перезагрузите систему.)

Источники:

Ответ 2

Иногда это не так сложно. Я только что решил эту проблему, выполнив это:

Перейдите на ЭТОТ ПК: → в строке поиска введите ca.pem → и теперь перейдите в это место и скопируйте его → теперь перейдите в "Дополнительные параметры системы" → "Переменные среды" → "Редактировать" - DOCKER_CERT_PATH → и вставьте это местоположение и делая это, он будет работать

Ответ 3

Удаление переменных среды и запуск команд, упомянутых выше, помогли мне:

[Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")

[Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")

[Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User")

[Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User")

[Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")

Ответ 4

Эй, у меня есть похожие проблемы, я начал с такого рода ошибки

' http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/containers/create: open//./pipe/docker_engine'

После этого у меня тоже были проблемы с сертификатами. Что я сделал, так это изменил расположение моих файлов сертификатов в другое место и указал на него переменной окружения DOCKER_CERT_PATH. Затем я прошел через все различные проблемы, которые в конце концов решили мою проблему только частично. Наконец, я удалил набор инструментов докера и VM Virtualbox и снова установил его с другим, более старым драйвером NDIS5, который вы можете выбрать в мастере во время установки. Это решило все мои проблемы с Docker на win10

Wizard during installation Docker toolbox