докер не запускается в Windows


95

Выполнение docker version возвращает следующие результаты.

C:\Projects> docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/version: open //./pipe/docker_engine: The system cannot find the file
specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Запуск диагностики дает следующее:

C:\Projects> wget https://github.com/Microsoft/Virtualization- 
Documentation/raw/master/windows-server-container-tools/Debug- 
ContainerHost/Debug-ContainerHost.ps1 -UseBasicParsin | iex

Checking for common problems
Describing Windows Version and Prerequisites
 [+] Is Windows 10 Anniversary Update or Windows Server 2016 608ms
 [+] Has KB3192366, KB3194496, or later installed if running Windows build 14393 141ms
 [+] Is not a build with blocking issues 29ms
Describing Docker is installed
 [-] A Docker service is installed - 'Docker' or 'com.Docker.Service'  134ms
   Expected: value to not be empty
   27:         $services | Should Not BeNullOrEmpty
   at <ScriptBlock>, <No file>: line 27
 [+] Service is running 127ms
 [+] Docker.exe is in path 2.14s
Describing User has permissions to use Docker daemon
 [+] docker.exe should not return access denied 42ms
Describing Windows container settings are correct
 [-] Do not have DisableVSmbOplock set to 1 53ms
   Expected: {0}
   But was:  {1}
   66:              $regvalue.VSmbDisableOplocks | Should Be 0
   at <ScriptBlock>, <No file>: line 66
 [+] Do not have zz values set 42ms
Describing The right container base images are installed
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
 [-] At least one of 'microsoft/windowsservercore' or 'microsoft/nanoserver' should be installed 129ms
   ValidationMetadataException: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   ParameterBindingValidationException: Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   at <ScriptBlock>, <No file>: line 90
Describing Container network is created
 [-] Error occurred in Describe block 1.08s
   RuntimeException: Cannot index into a null array.
   at <ScriptBlock>, <No file>: line 119
Showing output from: docker info

Showing output from: docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64

Showing output from: docker network ls

Warnings & errors from the last 24 hours
Logs saved to C:\Projects\logs_20161107-084122.csv
C:\Projects>

8
Я пришел к выводу, что технология Windows еще не созрела. Используйте докер Linux, пока технология не станет зрелой.
Джим

используйте эту команду docker-machine create box github.com/docker/toolbox/issues/636
Mr Nobody

убедитесь, что вы выполнили все шаги по установке, указанные в документации: docs.docker.com/machine/get-started
fanny

Ответы:


42

Код ошибки:

ошибка во время подключения: Get http: //%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version : open //./pipe/docker_engine: система не может найти указанный файл. В конфигурации демона по умолчанию в Windows для подключения клиент-докер должен быть запущен с повышенными правами. Эта ошибка также может указывать на то, что демон докера не запущен.

Решения:

1) В командном окне Windows 7 (cmd.exe) откройте cmd.exe с правами администратора и выполните следующую команду:

docker-machine env --shell cmd default

Вы получите следующий вывод:

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\USER_NAME\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

Скопируйте команду ниже и выполните в cmd:

@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

А затем выполните следующую команду для управления:

docker version

2) Для Windows 7 Powershell откройте powershell.exe с правами администратора и выполните следующую команду:

docker-machine env --shell=powershell | Invoke-Expression

А затем выполните следующую команду для управления:

docker version

3) Если вы повторно откроете cmd или powershell, вам следует снова повторить соответствующие шаги.


12
Объяснение пожалуйста! Метод PowerShell - самый простой в использовании. Но почему возникает эта проблема и как ее можно решить с помощью одного лайнера?
Jaywalker

2
Если шаги 1 и 2 исключают друг друга, почему они пронумерованы 1 и 2?
Шон

7
А как насчет Windows 10 (Enterprise)? Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Хлоя

31

Вы можете запустить "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemonDocker CLI и указать ему контейнеры Linux или Windows. Это сработало для меня.


1
Это сработало для меня - Win10E - Docker версии 18.03.0-ce, сборка 0520e24 (с использованием linux vm - hyper v, виртуализация включена - что не позволяет мне запускать vm в виртуальном боксе - поэтому я могу использовать докер или виртуальную машину в одной точке вовремя)
hB0

У меня это не работает. Я получил ParserError: (:) [], ParentContainsErrorRecordException. Мне пришлось сделать stackoverflow.com/a/61062715/8718377
veben

13

Я знаю, что этот вопрос был давно, но я не нашел подходящего объяснения и решения, поэтому, надеюсь, мой ответ будет полезен :)

Предполагая , что вы установите Docker Toolbox на Windows, так dockerи docker-machineкоманды будут доступны. Часто люди не понимают, когда использовать любой из них.

Эти dockerкоманды используются только в пределах виртуальной машины для управления изображением . Эти docker-machineкоманды используются на хосте для управления виртуальными машинами Linux.

Поэтому используйте docker-machineкоманды на вашем компьютере с Windows. Используйте dockerкоманду внутри вашей виртуальной машины. Чтобы использовать dockerкоманды, например, docker psвы можете либо открыть терминал быстрого запуска Docker, либо запустить их на своем cmd / bash / PowerShell:

docker-machine run default/ предполагая, что по умолчанию ваша виртуальная машина Linux /

docker-machine ssh default

Это начнется boot2docker, и вы увидите значок докера в командной строке. Затем вы можете использовать dockerкоманды.

Удачи :)


3
docker-machine: 'run' is not a docker-machine command. See 'docker-machine --help'.Это не соответствует тому, что говорится в документации. Документы говорят, что вы можете запускать docker infoили docker psпросматривать свои контейнеры. docs.docker.com/get-started/#test-docker-version
Хлоя

11

Ошибка связана с этой частью:

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

Вы можете сделать это, чтобы переключить демон Docker:

  1. Откройте Powershell от имени администратора
  2. Выполните следующую команду:

cd "C:\Program Files\Docker\Docker" ./DockerCli.exe -SwitchDaemon


1
Понятно и лаконично. Работал у меня.
mfonism

1
ЛУЧШИЙ! Спасибо за этот комментарий !!
Равиш Рават,

11

У меня такая же проблема.

Запуск демона докеров решил проблему. Просто найдите докер, нажав клавишу Windows, и нажмите «Docker Dekstop». Демон должен запуститься через минуту. введите описание изображения здесь


1
Это сработало и для меня :)
Габриэла Каталина

4

если вы находитесь в окнах, попробуйте это

 docker-machine env --shell cmd default 
 @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

для тестирования попробуйте

docker run hello-world

4

Если вы установили докер в Windows 10 Pro с включенным Hyper-V и по-прежнему не можете запустить Docker в Windows 10, то, как следует из ошибки, ваш демон докера не запускается.

Следующие шаги помогли мне успешно запустить докер:

  1. Используйте команду в cmd (режим администратора)

    docker-machine restart default
    
  2. Затем вы получите примерно такое сообщение:

    open C:\User\\{User_name}\\.docker\machine\machines\default\config.json:
    система не может найти указанный файл.

  3. Перейдите к значку докера, который будет на панели задач Windows (нижний правый угол рабочего стола).

  4. Щелкните правой кнопкой мыши значок докера> Настройки> Сброс> Перезапустить Docker

    Это займет несколько минут

  5. Затем вы увидите следующее сообщение:

    Докер работает с зеленым индикатором

Примечание . Если в вашей системе уже запущены контейнеры Docker, не выполняйте эти действия. Вы можете потерять существующие контейнеры.

введите описание изображения здесь


3
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Хлоя

3

Попробуйте решить проблему одним из следующих способов:

Вариант А

Start-Service "Hyper-V Virtual Machine Management"
Start-Service "Hyper-V Host Compute Service"

или

Вариант Б

  1. Откройте «Безопасность окон»

  2. Откройте «Управление приложением и браузером»

  3. Нажмите "Настройки защиты от эксплойтов" внизу.

  4. Перейдите на вкладку "Настройки программы"

  5. Найдите в списке «C: \ WINDOWS \ System32 \ vmcompute.exe» и разверните его.

  6. Нажмите "Изменить"

  7. Прокрутите вниз до «Защита потока кода (CFG)» и снимите флажок «Переопределить системные настройки».

  8. Запустите vmcompute из PowerShell "net start vmcompute"

  9. Затем перезапустите вашу систему


3

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

окна10

.

  1. Загрузите рабочий стол докера из концентратора докеров после входа в докер.Docker Desktop Installer.exeфайл будет загружен.
  2. Установить Docker Desktop Installer.exeс помощьюRun as administrator -> Отметьте контейнер Windows во время установки, иначе он установит только контейнер Linux. Он попросит выйти из системы после выхода и входа в систему, в меню отобразится рабочий стол докера.
  3. После установки перейдите в -> Управление компьютером -> Локальные пользователи и группы -> Группы -> docker-user -> Добавить пользователя в члены введите описание изображения здесь
  4. Запустить рабочий стол докера с помощью Run as administrator введите описание изображения здесь
  5. Проверьте значок кита-докера на вкладке уведомлений введите описание изображения здесь
  6. выполнить команду> версия докера. введите описание изображения здесь Успешное использование докера без каких-либо проблем.

2

Для меня проблема заключалась в том, что виртуализация не была включена.

В Windows 10: перейдите в диспетчер задач -> Производительность -> ЦП, и вы увидите раздел «Виртуализация: включена».

Если вы не видите этот параметр, это означает, что виртуализация не включена.

Еще одна интересная вещь, которую следует отметить, - у вас должен быть включен Hyper V. Однако, когда я использовал рабочий стол Parallels, мне пришлось включить «Вложенную виртуализацию», чтобы Hyper V был «действительно включен». Итак, если у вас Windows виртуальная машина, проверьте настройки Parallels (или того, что вы используете), что вложенная виртуализация включена.


2

У меня были такие же ошибки после установки в Windows 10. И я попытался перезапустить, но это не сработало, поэтому я сделал следующее ( не рекомендую если вы какое-то время работали в докере, это было при новой установке):

1) Найдите кита на панели задач и щелкните правой кнопкой мыши

2) Заходим в настройки> Сброс

3) Сброс до заводских настроек по умолчанию

Затем я смог следовать руководству по началу работы с докерами на веб-сайте с Windows 10, и теперь он работает как шарм.


В трее нет кита.
Хлоя

На моем компьютере работает виртуальная машина по умолчанию, на которой запущен рабочий докер, я сбросил эту виртуальную машину, а затем исправил ошибку докера в Windows
Freelancer

2

В последнее время у меня была такая же проблема. Проблема заключалась в том, что программа безопасности (Trendmicro) блокировала докер для создания сетевого интерфейса Hyperv. Вы также должны проверить брандмауэр, антивирусное программное обеспечение, не блокирующее установку или настройку.


Спасибо. Это помогло.
sv_vs

2

Откройте диск C в PowerShell или Git bash и выполните команду ниже

.\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon

2

Если ни один из других ответов вам не подходит, попробуйте следующее: откройте терминал и запустите:

wsl -l -v 

Если вы заметили, что рабочий стол docker-desktop остался висеть в состоянии «Installing», закройте Docker, запустите powershell от имени администратора и отмените регистрацию docker-desktop:

PS C:\WINDOWS\system32> .\wslconfig.exe /u docker-desktop

Перезагрузите докер, и, надеюсь, он сработает. Если это не так, попробуйте сначала удалить docker, затем отмените регистрацию docker-desktop и переустановите Docker.

Источник: https://github.com/docker/for-win/issues/7295#issuecomment-645989416


2

У меня такая же ошибка для Docker версии 19.03.12 и Windows 10 . Решили это, выполнив следующие шаги. Надеюсь, это поможет другим.

  1. Перейдите в Windows Пуск -> Поле поиска ( введите здесь для поиска ). Там введите « Услуги ». Среди перечисленных элементов щелкните Услуги Приложение « .
  2. Теперь выполните поиск « Docker Desktop Service » в открывшемся окне « Службы» . Щелкните его правой кнопкой мыши и запустите службу. Его статус должен быть изменен на « Выполняется ».
  3. Если на шаге 2 возникает ошибка типа « не удалось запустить службу зависимостей », запустите все службы зависимостей. Мне пришлось запустить службу под названием « Сервер ».
  4. Дважды щелкните значок « Рабочий стол Docker » на рабочем столе. Теперь вы увидите, что Docker Desktop запущен. » на панели задач.
  5. Теперь запустите команду docker version из командной строки или PowerShell . Он должен давать чистый результат.
  6. Если возникла проблема на шаге 5, запустите командную строку или PowerShell от имени администратора.

Приведенное выше разрешение предполагает, что Docker уже установлен, а в вашей системе включены Hyper-V / Virtualization .


1

Я использую Windows 7 с Docker Toolbox, и чтобы исправить это, просто откройте Docker Quickstart Terminal.

$ docker version Клиент: Версия: 17.05.0-ce Версия API: 1.29 Версия Go: go1.7.5 Git commit: 89658be Построен: пятница мая, 15:36:11 2017 OS / Arch: windows / amd64

Сервер: Версия: 17.05.0-ce Версия API: 1.29 (минимальная версия 1.12) Версия Go: go1.7.5 Git commit: 89658be Построен: четверг, 4 мая, 21:43:09 2017 OS / Arch: linux / amd64 Экспериментальная: false


1

Для меня ошибка была решена путем остановки виртуального экземпляра Ubuntu, который работал в Hyper-V:

The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Как только экземпляр Ubuntu был остановлен и Docker Desktop был перезапущен, мои обычные команды Docker работали нормально.

PS: у меня возникла идея попробовать это из-за журнала ошибок, который Docker Desktop любезно скомпилировал и предложил отправить в Docker Hub в качестве обратной связи с пользователем ... журнал появился, чтобы указать, что на моей машине не хватает ОЗУ , а Docker дает сбой по этой очень простой причине. Это решило убийство экземпляра Ubuntu.


1

Для win10 у меня была такая же проблема:

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/images/load?quiet=0: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

Докер-сервис вроде заработал. Перезагрузка не помогла. Помог запуск двоичного файла из установочного каталога от имени администратора.

В моем случае:

run as administrator -> C:\Program Files\Docker\Docker\Docker for Windows.exe

Это решило мою проблему. Запуск докеров Windows CE с контейнерами Windows. Спасибо!
AA

'"C:\Program Files\Docker\Docker\Docker for Windows.exe"' is not recognized as an internal or external command, operable program or batch file.
Хлоя

1

Я тоже столкнулся с ошибкой, в которой говорится

"Access is denied. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running."

Решили эту проблему, запустив «powershell» в режиме администратора.



1

У одного из моих друзей была аналогичная проблема, мы попробовали это, и это сработало.

Hyper-V, несмотря на то, что он был указан в разделе «Включение или отключение компонентов Windows» как активный, на самом деле не был активен. Это стало очевидным при запуске systeminfo под PowerShell и обнаружении, что требования были указаны как выполненные (чего нельзя было ожидать, если бы Hyper-V действительно работал).

  1. Откройте "Включение или отключение компонентов Windows"
  2. Если вы не знаете, как это сделать, см. Https://www.howtogeek.com/250228/what-windows-10s-optional-features-do-and-how-to-[turn-them-on-or- выкл /] [1]
  3. Выключите Hyper-V (снимите флажок, убедившись, что все субкомпоненты отмечены как выключенные)
  4. Нажмите «ОК» - и ваша машина перезагрузится.
  5. Когда ваш компьютер снова загрузится, откройте «Включение или выключение компонентов Windows» и снова включите Hyper-V. Ваша машина снова перезагрузится.

Теперь вы можете протестировать, запустив docker hello-world image.



0

Попробуйте запустить следующее из командной строки с повышенными привилегиями:

SET DOCKER_CERT_PATH=C:\Users\[YourName]\.docker\machine\machines\default
SET DOCKER_HOST=tcp://[yourDockerDeamonIp]:2376
SET DOCKER_MACHINE_NAME=default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

Вы также можете обнаружить, что даже без установки этих переменных env выполнение команд из терминала быстрого запуска Docker работает без проблем.


Можно ли объяснить, что делают эти команды? Мне неудобно настраивать DOCKER_HOST на какой-то IP-адрес, который, как я знаю, не существует в моей сети.
Боборт

Извините, это был локальный IP-адрес моего демона докеров. Я удалил это сейчас.
KidCode

0

Решено для меня, запустив настольное приложение docker, уведомление о регистрации. При необходимости настройте.

$ net start com.docker.service

Служба Docker для Windows запускается. Служба Docker для Windows успешно запущена.

$ docker version

$ net start com.docker.service

Запрошенная услуга уже запущена.


0

с недавним обновлением докера у меня возникла проблема, когда приложение докера зависало при запуске. Я решил это, завершив wsl.exe с помощью диспетчера задач.

введите описание изображения здесь



0

Вам нужны права администратора для запуска службы

У меня была аналогичная проблема. Проблема исчезает, когда я запускаю командную строку (запуск от имени администратора и набираю «версия докера».

C: \ WINDOWS \ system32> версия докера

Клиент: Docker Engine - Версия сообщества: 19.03.8 Версия API: 1.40 Версия Go: go1.12.17 Git commit: afacb8b Построен: среда, 11 марта 01:23:10 2020 OS / Arch: windows / amd64 Экспериментально: false

Сервер: Docker Engine - Community Engine: Версия: 19.03.8 Версия API: 1.40 (минимальная версия 1.12) Версия Go: go1.12.17 Git commit: afacb8b Построено: среда, 11 марта, 01:29:16 2020 OS / Arch: linux / amd64 Экспериментально: false containerd: Версия: v1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Версия: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker8-init.0 Версия: GIT.0-init


0

После установки рабочего стола докера на ваш компьютер (windows one). Вы можете найти это место. Что на самом деле делает? Он запускает Docker Daemon через ваш CLI

C:\Windows\System32\cmd.exe\DockerCli.exe -SwitchDaemon

Пожалуйста, опишите подробнее свой ответ, иначе он может быть отмечен как низкокачественный.
Итан Ву

после установки рабочего стола докера на ваш компьютер (windows one). Вы можете найти это место. Что на самом деле делает? Он запускает Docker Daemon через ваш интерфейс командной строки
Dinuwan Kalubowila

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

0

Столкнулся с аналогичной проблемой, установив рабочий стол докера на виртуальную машину Windows, работающую на WSL2.

Решение:

Обновил Windows до последней сборки и VMTools до последней (11.2) версии, исправил проблему, теперь докер работает без остановки.


-1

1-й запуск Powershell «от имени администратора», что также предотвратит возникшую ошибку docker version.

Попытка запустить службу Docker: start-service docker Если это не удается удалить файл docker.pid вы найдете с cd $env:programfiles\docker; rm docker.pid
Наконец , вы должны изменить , HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\VSmbDisableOplocksчтобы 0или удалить значение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.