Команды 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.
Таким образом, видимо, какой-то путь все испортился. Кто-нибудь знает, какой путь это и как это исправить?
Ответы
Ответ 1
При запуске docker ps
и получении:
Произошла ошибка при попытке подключения: Get 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-сервера (найденная в VirtualBox- > File- > Preferences- > Network- > Host-only Networks- > наведите указатель мыши на VirtualBox Host-Only Ethernet-адаптер) - 192.168.99.100, и никакая другая виртуальная машина не работает в VirtualBox.
Ответ 2
Я столкнулся с этой проблемой при использовании док-машины, и я не запускал команду docker-machine env
после перезагрузки. Я не уверен, как это сделать в cmd.exe, но если вы используете powershell, попробуйте выполнить эту команду:
docker-machine env --shell=powershell | Invoke-Expression
Ответ 3
Такая же проблема здесь в Win 7. Решение:
В окне быстрого запуска Docker в строке $prompt запустите следующую строку:
your_user @your_machine MINGW64 ~
$eval $( "C:\Program Files\Docker Toolbox\docker-machine.exe" env по умолчанию)
Затем вы сможете запустить "docker run hello-world".
Ответ 4
Убедитесь, что Hyper-V запущен и запущен:
- открыть расширенную командную строку
- type
bcdedit /set hypervisorlaunchtype auto
- перезагрузка
- запустите "Docker for Windows"
Ответ 5
- Открыть cmd с правами администратора.
- Выполнить следующую команду
docker-machine env --shell cmd по умолчанию
-
вы получите следующий вывод
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 = *" % я IN ('docker-machine env --shell cmd default') DO @% i
-
Скопируйте выделенную строку и выполните на cmd
@FOR/f "tokens = *" % я IN ('docker-machine env --shell cmd default') DO @% i
-
Выполните следующую команду
docker ps
Ответ 6
Я создал новую машину, используя следующую команду
docker-machine create --driver=virtualbox vbox-test
Затем выполняется команда
docker-machine env --shell=powershell | Invoke-Expression
Получил работу...
Ответ 7
Мне пришлось иметь дело с той же проблемой в Windows.
Чтобы решить эту проблему:
-
Создайте докер-машину (только если у вас ее нет)
docker-machine create default
-
Получите ENV файлы, которым нужен клиент-докер, чтобы подключиться к машине-докере (серверу) [Это нужно делать каждый раз или устанавливать в своих ENV-vars]
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
Ответ 8
Я просмотрел все вышеупомянутые ответы, и никто из них не работал.
Затем я узнал, что команда должна выполняться в командной строке linux, например bash.
поэтому попробуйте:
Введите команду в Docker bash терминал VM, который поставляется с панелью инструментов докеров, в отличие от окон cmd
Если вы уже убедились, что ваш докер запущен
Ответ 9
Как указано в других ответах, вам нужно установить несколько переменных среды.
Самый простой способ сделать это:
@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd') DO @%i
Это запустит docker-machine env --shell cmd
и добавит эти переменные среды.
Если вы хотите, чтобы эти переменные были постоянными, они определяли их в окнах (учебник).
Ответ 10
Щелкните правой кнопкой мыши значок "Докер" в лотке и выберите "Переключиться на контейнеры Windows...".
Возможно, вам будет предложено включить функцию "Контейнеры". Сделайте это и снова перезагрузитесь.
Ответ 11
В моем случае служба docker не была запущена после перезагрузки, поэтому я только начал
Ответ 12
У меня была аналогичная проблема, когда я установил Docker CE для Windows Version 17.11.0-ce-rc4-win39 (14244) Канал: edge e557194 в Windows 10.
В командных/cmd-окнах, когда я пытался запускать команды docker ps, docker version, docker info, у меня была ошибка, например "ошибка во время подключения: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.34/version" каждый раз.
Чтобы решить эту проблему,
- Я сделал "Hyper-V" выключен (снят) с "Включить или отключить функцию Windows", для чего необходимо перезапустить ОС.
- И после первого перезапуска я сделал "Hyper-V" On (Checked), что снова потребовало перезагрузки ОС.
После второго перезапуска над командами докеров стартовала работа и давала правильный выход.
Итак, перевернув Hyper-V off, а затем на разрешил эту проблему для меня.
Ответ 13
Я получил решение от этой проблемы. Это не просто как ответ никеша сказал, что 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 на другого демона (зависит от того, что вы установили). Когда вы переключаетесь на другого демона, изображения и контейнеры на предыдущем демоне исчезают (но не удаляются).
Ответ 14
Чтобы запустить хост по умолчанию в Windows, я знаю три способа, приведенных ниже, вы можете использовать один из них.
-
Запуск или перезапуск уже созданной машины по умолчанию с помощью Docker:
docker-machine start default
docker-machine restart default
Сейчас проверь docker-machine env
-
Следующие свойства среды должны быть установлены:
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/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
Ответ 15
У меня была эта проблема на машине Windows 2016. Случилось так, что служба докеров не была запущена. В моем случае служба докеров как ошибка со следующей ошибкой
fatal: Ошибка запуска daemon: найден файл pid, убедитесь, что docker не запущен или не удален C:\ProgramData\docker.pid
Удаление файла C:\ProgramData\docker.pid сделало трюк.
Ответ 16
В лотке Docker запущен, однако в Docker- > Settings статус: невозможно запустить. Ошибка перезагрузки Docker.
Ответ 17
ниже разрешено. я скопировал ответ с другого форума
У меня была эта проблема после обновления. После повторной установки VB я включил "VirtualBox NDIS6 Bridged Networking Driver" в сетевом подключении свойств.
В моем случае свойство отключено по умолчанию.
![`]()
Ответ 18
Windows 10 Professional
Для меня служба Docker была запущена, но Докер все еще нужно было "начать". То есть, у меня была настройка "Запустить Docker при входе в систему", не отмеченную в значке лотка Docker.
Прежде чем найти это, я отправился в папку программы Docker и нажал "Docker for Windows". Через короткое время отображается сообщение "Docker is running".
Ответ 19
Для меня эта ошибка была решена после удаления файла daemon.json
в "%programdata%\docker\config"
Содержимое моего daemon.json
следующее:
{
"hosts": ["tcp://0.0.0.0:2375"]
}
Я создал это вручную как часть некоторого тестирования. Но после перезагрузки сервера я начал получать ошибку в этом вопросе.
Ответ 20
Ошибка действительно беспокоит. Надеюсь, разработчики Docker что-то сделают. Потребовалось много попыток и ошибок. Благодаря Stackoverflow и другим блогам. В моем случае я использую 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
Далее, Open 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
Большинство предложений выше тоже полезны.
Ответ 21
Я видел это сообщение об ошибке после выходных. Моя установка была в порядке до этого. Мой конфиг и соединения выглядели правильно. $docker-machine restart default
исправил это для меня в Windows 7
Ответ 22
Я получал эту ошибку при запуске команды docker-compose up
. Проблема для меня заключалась в том, что служба Docker не работала. Поэтому мне пришлось запустить services.msc
и запустить службу Docker.
![enter image description here]()
Ответ 23
Я решил эту ошибку, запустив {DOCKER_TOOLBOX_INSTALL_PATH}start.sh
в bash.
Ответ 24
В моем случае все вышеперечисленные решения не решили. Вместо зилурране помог ответ.
cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
Ответ 25
- Переключиться на контейнеры Windows
- информация о докере
- докер PS
- Вернитесь к контейнерам Linux
- информация о докере
- Виола!
Переключатель Windows, вероятно, запускает недостающие конфигурации, которые также нужны Linux.
Ответ 26
У меня была похожая проблема. Для меня я не вошел в докер из строки состояния. Что я сделал, чтобы войти в докер из строки состояния. После того, как я вошел в систему, я смог правильно выполнить все команды. Попробуйте войти в систему, используя свой идентификатор докера и пароль, возможно, это решит вашу проблему.
Ответ 27
У меня была такая же проблема на моей Windows 10. Найдите ниже, что я сделал для ее решения:
После установки Docker просто перезагрузите компьютер, запустите приложение докеры (возможно, потребуется включить Hyper-V), затем откройте командную строку и введите: docker run hello-world
Все отлично работает:)