Команды Docker не работают (в Windows)

Я пытаюсь использовать Docker на компьютере с Windows, и мне кажется, что все возможные проблемы. Моя последняя версия такова: моя машина работает, но я не могу взаимодействовать с ней с помощью команд докера. Если я запускаю очень стандартную команду, такую ​​как:

docker ps

Я получаю сообщение об ошибке, подобное этому:

An error occurred trying to connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v
1.23/containers/json: open //./pipe/docker_engine: The system cannot find the file specified.

Так что, видимо, какой-то путь запутался. Кто-нибудь знает, какой это путь и как это исправить?

26 ответов

При беге docker ps и получение:

Произошла ошибка при попытке подключения: Получить http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json: open //./pipe/docker_engine: Система не может найти указанный файл.

Следующие свойства среды должны быть установлены:

 set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
 set DOCKER_HOST=tcp://192.168.99.100:2376
 set DOCKER_MACHINE_NAME=default
 set DOCKER_TLS_VERIFY=1

Это предполагает %USERPROFILE%\.docker\machine\machines\default путь по умолчанию, где cert.pem, key.pem, ca-key.pem, а также ca.pem докер файлы есть; имя виртуальной машины (созданное docker-machine create) является default Нижняя граница DHCP-сервера Virtual Box (находится в разделе VirtualBox-> Файл-> Настройки-> Сеть-> Сети только для хоста-> Наведение мыши на Ethernet-адаптере VirtualBox только для хоста) составляет 192.168.99.100, и никакая другая виртуальная машина не работает в VirtualBox.,

Та же проблема здесь на Win 7. Решение:

В окне быстрого запуска Docker в командной строке $ запустите следующую строку:

your_user @ your_machine MINGW64 ~

$ eval $ (по умолчанию "C:\Program Files\Docker Toolbox\docker-machine.exe")

Затем вы сможете запустить "Docker Run hello-world".

Я столкнулся с этой проблемой при использовании Docker-машины, и я не запускал docker-machine env Команда после перезагрузки. Я не уверен, как это сделать в cmd.exe, но если вы используете powershell, попробуйте выполнить следующую команду:

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

Убедитесь, что Hyper-V запущен и работает:

  • открыть командную строку с повышенными правами
  • тип bcdedit /set hypervisorlaunchtype auto
  • перезагружать
  • запустить "Докер для Windows"

Мне пришлось иметь дело с той же проблемой на Windows.

Чтобы решить это:

  1. Создайте докер (только если у вас его нет)

    docker-machine create  default
    
  2. Получите переменные ENV, которые нужны клиенту докера для подключения к докеру (серверу) [Это вам нужно будет делать каждый раз или устанавливать в ваших ENV переменах]

    docker-machine.exe env default
    

    Вы можете установить их вручную или выполнить одно из следующих действий в зависимости от shell environment (cmd, bash, power-shell)

    docker-machine env --shell=cmd # you need to run it manually
    docker-machine env --shell=bash > env-var-commands-tmp && . env-var-commands-tmp && rm env-var-commands-tmp
    docker-machine env --shell=powershell | Invoke-Expression
    
  1. Откройте cmd с правами администратора.
  2. Выполнить следующую команду

    docker-machine env --shell cmd default

  3. вы получите следующий вывод

    SET DOCKER_TLS_VERIFY = 1

    SET DOCKER_HOST = tcp: //192.168.99.102: 2376

    SET DOCKER_CERT_PATH = C: \ Users \ DBashyal.docker \ machine \ machines \ default

    SET DOCKER_MACHINE_NAME = по умолчанию

    REM Запустите эту команду для настройки вашей оболочки:

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

  4. Скопируйте выделенную строку и выполните на cmd

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

  5. Выполнить следующую команду

    докер PS

Я создал новую машину с помощью команды ниже

docker-machine create --driver=virtualbox vbox-test

Затем выполнил команду

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

Работай...

Я посмотрел на все вышеупомянутые ответы, и ни один из них не сработал. Затем я узнал, что команду нужно запускать в командной строке linux, такой как bash. так что постарайтесь:

Введите команду в виртуальную машину Docker Bash Terminal, которая поставляется с набором инструментов Docker, в отличие от Windows cmd

Если вы уже убедились, что ваш докер запущен

Как указано в других ответах, вам нужно установить несколько переменных среды.

Самый простой способ сделать это:

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

Это будет работать docker-machine env --shell cmd и добавить эти переменные среды.

Если вы хотите, чтобы эти переменные были постоянными, определите их в Windows ( учебник).

Чтобы запустить хост по умолчанию в Windows, я знаю три способа, приведенных ниже, вы можете использовать один из них.

  1. Запуск или перезапуск уже созданной машины по умолчанию с помощью Docker:

    docker-machine start default
    docker-machine restart default
    

    Сейчас проверю docker-machine env

  2. Следующие свойства среды должны быть установлены:

    set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
    set DOCKER_HOST=tcp://192.168.99.100:2376
    set DOCKER_MACHINE_NAME=default
    set DOCKER_TLS_VERIFY=1
    
  3. Чтобы создать новый компьютер, используйте следующую команду:

Windows 10 / HyperV:

docker-machine create --driver hyperv default
docker-machine create -d hyperv default

Mac, Linux, Windows 7 и 8:

docker-machine create --driver virtualbox default
docker-machine create -d virtualbox default

Щелкните правой кнопкой мыши значок Docker на панели задач и выберите "Переключиться на контейнеры Windows...". Вам может быть предложено включить функцию контейнеров. Сделайте так и перезагрузите компьютер, снова.

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

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
# then check the docker OS/Arch
docker version
# You may see the different OS/Arch 
./DockerCli.exe -SwitchDaemon
# then you got your images and containers back 

Эта команда просто переключает вашего демона с вашего демона defualt на другого демона (зависит от того, что вы установили). Когда вы переключаетесь на другого демона, изображения и контейнеры на предыдущем демоне исчезают (но не теряются).

У меня была похожая проблема, когда я установил Docker CE для Windows версии 17.11.0-ce-rc4-win39 (14244). Канал: edge e557194 в Windows 10.

В окнах Command/cmd, когда я пытался запустить команды Docker PS, версия Docker, информация о Docker, я получил сообщение об ошибке типа "ошибка при подключении: Получить http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.34/version"каждый раз.

Чтобы решить эту проблему,

  1. Я отключил (снял флажок) "Hyper-V" с "Включение или выключение функции Windows", что требовало перезапуска ОС.
  2. И после первого перезапуска я включил "Hyper-V" (проверено), что снова потребовало перезапуска ОС.

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

Таким образом, отключение и последующее включение Hyper-V решило эту проблему для меня.

  1. Переключиться на контейнеры Windows
  2. информация о докере
  3. докер PS
  4. Вернитесь к контейнерам Linux
  5. информация о докере
  6. Виола!

Переключатель Windows, вероятно, запускает недостающие конфигурации, которые также нужны Linux.

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

Неустранимый: Ошибка запуска демона: файл pid найден, убедитесь, что докер не запущен или удалите C:\ProgramData\docker.pid

Удаление файла C:\ProgramData\docker.pid сделало свое дело.

Я решил эту ошибку, запустив {DOCKER_TOOLBOX_INSTALL_PATH}start.sh в баш.

Я видел это сообщение об ошибке после выходных. Моя установка была в порядке до этого. Мой конфиг и соединения выглядели правильно. $docker-machine restart default исправил это для меня на Windows 7

Для меня эта ошибка была устранена после того, как я удалил daemon.json файл в "%programdata%\docker\config"

Содержание в моем daemon.json является следующим:

{
  "hosts": ["tcp://0.0.0.0:2375"]
}

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

В моем случае все вышеперечисленные решения не решили. Вместо зилурране ответ помог.

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

Windows 10 Professional Для меня служба Docker была запущена, но Docker все еще нужно было "запустить". То есть у меня была отключена настройка "Запуск Docker при входе в систему" ​​в значке панели задач.

Прежде чем это выяснить, я зашел в папку с программой Docker и нажал "Docker для Windows". Через некоторое время появилось сообщение "Docker is running".

Я получал эту ошибку при запуске команды docker-compose up, Проблема для меня заключалась в том, что служба Docker не работала. Так что мне пришлось бежать services.msc и запустите сервис докера.

Ниже решено. я скопировал ответ с другого форума

У меня была эта проблема после обновления. После переустановки VB я включил "VirtualBox NDIS6 Bridged Networking Driver" в свойствах сетевого подключения.

Это свойство отключено по умолчанию в моем случае.

Ошибка действительно беспокоит. Надеюсь, разработчики Docker что-то предпримут. Потребовалось много попыток и ошибок, чтобы обойти. Благодаря Stackru и другим блогам. В моем случае я использую Windows 10 Pro. Я остановился на DockerToolbox.exe после нескольких неудачных попыток с Docker для Windows Installer.exe. Потом я столкнулся An error occurred trying to connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v , После этих шагов, и проблема была решена. Сначала я зашел в Панель управления -> Включить или выключить функции Windows и отключить Hyper-V
введите описание изображения здесь Затем откройте PowerShell от имени администратора:

docker-machine env --shell=powershell | Invoke-Expression
type bcdedit /set hypervisorlaunchtype auto

Перезапустил мою систему. Затем я запустил "Docker Quickstart Terminal", затем ввел это в окно оболочки.

run "Docker for Windows"
docker run hello-world

У меня все прошло хорошо. Затем я открываю командную строку

docker run hello-world

Это дало ошибку: потом я вошел

set DOCKER_CERT_PATH=%USERPROFILE%\.docker\machine\machines\default
set DOCKER_HOST=tcp://192.168.99.100:2376
set DOCKER_MACHINE_NAME=default
set DOCKER_TLS_VERIFY=1

Большинство из приведенных выше предложений тоже полезны.

У меня была аналогичная проблема. Для меня я не входил в докер из строки состояния. Что я сделал, так это войти в докер из строки состояния. Как только я вошел в систему, я смог правильно запустить все команды. Попробуйте войти в систему, используя свой идентификатор докера и пароль, возможно, это решит вашу проблему.

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

Системная среда:

  • Windows 10 Профессиональная
  • Движок Windows в Docker
  • Докер версии 20.10.21

Решение

отключил IP6 и перезапустил службу и приложение

У меня была такая же проблема на моей Windows 10. Ниже найдите то, что я сделал, чтобы решить ее:

После установки Docker просто перезагрузите компьютер, запустите приложение Docker (может потребоваться включение Hyper-V), затем откройте командную строку и введите: docker run hello-world

Все отлично работает:)

Другие вопросы по тегам