Подтвердить что ты не робот

Докер не может запускаться на окнах

Выполнение 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>
4b9b3361

Ответ 1

Код ошибки:

Ошибка

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

Решения:

1) Для Windows 7 Command Window (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, вы должны снова повторить связанные шаги.

Ответ 2

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

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

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

Поэтому, пожалуйста, используйте команды docker-machine на вашей машине Windows. Используйте команду docker внутри вашей виртуальной машины. Для того, чтобы использовать docker команды, например, docker ps, вы либо можете открыть Docker Quickstart терминал или запустить их на вашем Cmd/Баш/PowerShell:

docker-machine run default/если по умолчанию используется ваш Linux VM/

docker-machine ssh default

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

Удачи :)

Ответ 3

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

Ответ 4

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

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

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

    docker-machine restart default
    
  2. Тогда вы получите сообщение, похожее на:

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

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

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

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

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

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

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

enter image description here

Ответ 5

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

В окнах 10: перейдите в диспетчер задач → Производительность → ЦП и вы увидите раздел "Виртуализация: Включено"

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

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

Ответ 6

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

Ответ 7

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

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

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

docker run hello-world

Ответ 8

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

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

2) Перейдите к настройкам> Сброс

3) Сброс к заводским настройкам

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

Ответ 9

Для 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

Ответ 10

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

Вариант А

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

или

Вариант B

  1. Откройте "Окно безопасности"

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

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

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

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

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

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

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

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

Ответ 11

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

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 не вызывает проблем.

Ответ 12

Я использую Windows 7 с Docker Toolbox и исправляю его просто открывать Терминал быстрого запуска Docker.

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

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

Ответ 13

Для меня ответ был отключен службой VPN. Хотя на работе, подключенной к VPN, я получаю упоминаемую ошибку. Я отключил VPN, а затем докеры работали, как ожидалось, в Windows 10. Приведенная ниже (после завершения) команда возвращает вас в интерактивную подсказку python " → > " и предварительно устанавливает simplejson и requests

docker run --rm -ti -v `pwd`:/tmp jfloff/alpine-python:2.7-slim -p simplejson -p requests

Ответ 14

Я столкнулся с той же проблемой. Я решил это, включив гипер-v.

  • Включить виртуализацию в BIOS
  • Install hyper-v

Ответ 15

Запустите "Рабочий стол Docker" для Windows от имени администратора + powershell или от того, что когда-либо использовалось также от имени администратора. Решил это для меня!

Ответ 16

Для меня ошибка была решена путем остановки виртуального экземпляра 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 решило это.

Ответ 17

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

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

Ответ 18

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

Ответ 19

У меня была такая же ошибка в Windows. Оказывается, мне не хватает функции Container.

Install-WindowsFeature Containers

Перезапустить сервер

При запуске и работе убедитесь, что служба Docker работает

Ответ 20

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

  1. проверить, что виртуализация включена из taskmanager--> производительности
  2. Перезапуск службы докеров
  3. Установите последнюю сборку докеров и перезагрузите компьютер.
  4. Убедитесь, что служба докеров запущена.

Вышеуказанные шаги помогли мне решить эту проблему.

Ответ 21

Это окончательное решение.. это работает для меня... !!

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

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

3) Сброс к заводским настройкам