docker не може запуститись у вікнах -


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
Я дійшов висновку, що технологія не є зрілою на вікнах. Використовуйте докер Linux, поки технологія не дозріє.
Джим,

використовуйте цю команду docker-machine create box github.com/docker/toolbox/issues/636
Містер Ніхто

переконайтеся , що ви виконали всі кроки установки з документації: docs.docker.com/machine/get-started
Фанні

Відповіді:


42

Код помилки:

помилка під час підключення: Отримати http: //%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version : open //./pipe/docker_engine: Система не може знайти вказаний файл. У конфігурації демона за замовчуванням у Windows клієнт докера повинен бути запущений з підвищеним рівнем для підключення. Ця помилка може також свідчити про те, що демон Docker не працює.

Рішення:

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?
Sean

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" -SwitchDaemonта направити Docker CLI на контейнери Linux або Windows. Це спрацювало для мене.


1
Це працювало для мене - Win10E - Docker версії 18.03.0-ce, збірка 0520e24 (за допомогою linux vm - hyper v, увімкнена віртуалізація - що заважає мені запускати vm у віртуальній скриньці - тому я можу або використовувати docker, або 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
Чіткий і лаконічний. Працював у мене.
мфонізм

1
НАЙКРАЩЕ! Дякую за цей коментар !!
Ravish Rawat

11

У мене була та сама проблема.

Запуск демона докера вирішив проблему. Просто знайдіть докер, натиснувши клавішу windows, і натисніть "Docker Dekstop". Демон повинен запуститись за хвилину. введіть тут опис зображення


1
Це спрацювало і для мене :)
Габріела Каталіна

4

якщо ви перебуваєте у Windows, спробуйте це

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

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

docker run hello-world

4

Якщо ви встановили docker у Windows 10 Pro з увімкненим Hyper-V, і ви все ще не можете запустити Docker у Windows 10, тоді, як свідчить помилка, ваш демон docker не запускається.

Наступні кроки допомогли мені успішно запустити докер:

  1. Використовуйте команду на cmd (режим адміністратора)

    docker-machine restart default
    
  2. Тоді ви отримаєте повідомлення приблизно на зразок:

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

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

  4. Клацніть правою кнопкою миші на піктограмі докера> Налаштування> Скинути> Перезапустити Докер

    Це займе кілька хвилин

  5. Тоді ви побачите таке повідомлення:

    Docker працює із зеленим індикатором

Примітка . Якщо у вашій системі вже працювали контейнери 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

Я зіткнувся з такою ж проблемою, можливо, це проблема адміністратора, тому дотримуйтесь наведених нижче кроків, щоб встановити докер

windows10

.

  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. Однак, оскільки я використовував паралелі на робочому столі, мені довелося включити "Вкладену віртуалізацію", щоб Hyper V був "по-справжньому увімкненим". Отже, якщо у вашому Windows є віртуальна машина, перевірте налаштування Parallels (або що б ви не використовували), де ввімкнута віртуалізація ввімкнена.


2

Я отримував ті самі помилки після встановлення в Windows 10. І я спробував перезапуститись, але це не спрацювало, тому я зробив наступне ( не рекомендую якщо ви деякий час працювали в Docker, це було при новій установці):

1) Знайдіть кита в системному треї та клацніть правою кнопкою миші

2) Перейдіть до налаштувань> Скинути

3) Скидання до заводських значень за замовчуванням

Тоді я зміг дотримуватися підручника з початкового докера на веб-сайті з Windows 10, і тепер це працює як шарм.


У системному треї немає кита.
Хлоя

На моїй машині, яка працює докером, працює vm за замовчуванням, я скинув цей vm, а потім усунув помилку docker у Windows
Freelancer

2

Останнім часом у мене була та сама проблема. Проблема полягала в тому, що програмне забезпечення безпеки (Trendmicro) блокувало докер для створення мережевого інтерфейсу Hyperv. Слід також перевірити брандмауер, програмне забезпечення AV, яке не блокує встановлення або конфігурацію.


Дякую. Це допомогло.
sv_vs

2

Відкрийте диск C у PowerShell або Git Bash і запустіть команду нижче

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

2

Якщо жодна з інших відповідей не працює для вас, спробуйте наступне: Відкрийте термінал і запустіть:

wsl -l -v 

Якщо ви помітили, що в стані «Встановлення» залишився зависаючий робочий стіл, закрийте 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 » . Клацніть правою кнопкою миші та запустіть службу. Його статус слід змінити на " Запуск ".
  3. Якщо на кроці 2 виникає помилка типу " служба залежностей не змогла запуститися ", то запустіть усі служби залежностей. Для мене мені довелося запустити послугу під назвою ' Сервер ».
  4. Двічі клацніть піктограму " Docker Desktop " на робочому столі. Тепер ви побачите " Docker Desktop працює " в системному треї.
  5. Тепер запустіть команду « версія докера » з командного рядка або PowerShell . Це повинно давати чистий результат.
  6. Якщо на кроці 5 виникли проблеми, запустіть командний рядок або PowerShell від імені адміністратора.

Вище роздільна здатність передбачає, що Docker вже встановлений, а у вашій системі ввімкнено Hyper-V / віртуалізацію .


1

Я використовую Windows 7 з Docker Toolbox, і щоб це виправити, просто відкрийте Docker Quickstart Terminal.

Версія $ docker Клієнт: Версія: 17.05.0-ce Версія API: 1.29 Версія Go: go1.7.5 Git commit: 89658be Побудовано: пт, 5 травня 15:36:11 2017 ОС / Арка: windows / amd64

Сервер: Версія: 17.05.0-ce Версія API: 1.29 (мінімальна версія 1.12) Перейти до версії: go1.7.5 Git commit: 89658be Побудований: Четвер 4 травня 21:43:09 2017 ОС / Арка: linux / amd64 Експериментально: невірно


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 був перезапущений, мої звичайні команди докера працювали нормально.

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. Натисніть "Ok" - і ваша машина перезавантажиться.
  5. Коли комп'ютер знову запуститься, відкрийте "Увімкнути або вимкнути функції Windows" і знову увімкніть Hyper-V. Ваша машина знову перезавантажиться.

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


0

Я стикаюся з тією ж проблемою. Я вирішив це, увімкнувши гіпер-v.

  1. Увімкніть віртуалізацію в BIOS
  2. Встановіть гіпер-v

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_HOST на якусь IP-адресу, про яку я знаю, що не існує в моїй мережі.
Bobort

Вибачте, це був локальний IP мого демона докера. Я зараз це видалив.
KidCode

0

Вирішено для мене запуском програми для робочого столу Docker, сповіщення про реєстрацію. Налаштування, якщо це необхідно.

$ net start com.docker.service

Запускається служба Docker для служби Windows. Послугу Docker для служби Windows запущено успішно.

$ docker version

$ net start com.docker.service

Запитана послуга вже запущена.


0

з недавнім оновленням докера, у мене виникла проблема, через яку програму докера повісили під час запуску. Я вирішив це, завершивши роботу wsl.exe за допомогою taskmanager.

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



0

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

У мене була подібна проблема. Проблема зникає, коли я запускаю командний рядок (запускати від імені адміністратора) і набираю "версія докера".

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

Клієнт: Docker Engine - Версія спільноти: 19.03.8 Версія API: 1.40 Версія Go: go1.12.17 Git commit: afacb8b Побудований: Ср, 11 березня 01:23:10 2020 ОС / Арка: windows / amd64 Експериментально: false

Сервер: Docker Engine - Двигун спільноти: Версія: 19.03.8 Версія API: 1.40 (мінімальна версія 1.12) Перейти до версії: go1.12.17 Git commit: afacb8b Побудований: Ср, 11 березня 01:29:16 2020 ОС / Арка: linux / amd64 Експериментально: помилковий контейнер: Версія: v1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Версія: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-feit3mit: feit


0

Після встановлення робочого столу Docker на ПК (Windows One). Ви можете знайти це місце. Що насправді робить ,? Він запускає Docker Daemon через ваш CLI

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

Будь ласка, надайте більше деталей до своєї відповіді, інакше вона може бути позначена як низька якість.
Ітан Ву

після встановлення робочого столу Docker на ПК (Windows One). Ви можете знайти це місце. Що насправді робить ,? Він запускає Docker Daemon через ваш CLI
Dinuwan Kalubowila

Я відредагував вашу відповідь, щоб додати деталі відповідно до вашого коментаря. Ви також можете самостійно відредагувати відповідь. І там є стаття про написання відповідей, які піднімаються "за" , вона акуратна.
Ітан Ву

0

Зіткнувся з подібною проблемою, встановивши робочий стіл докера на віртуальній машині Windows, що працює на WSL2.

Рішення:

Оновлено Windows до останньої збірки та VMTools до останньої версії (11.2), виправлено проблему, тепер Docker працює без зупинок.


-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.