Докер: Произошла ошибка при подключении
Установленный Docker в Windows с двумя дополнительными установками, Oracle VM VirualBox и Kitematic. Я отключил Hyper-V на своем ПК с Windows 10. Теперь проблема в том, что я не могу загрузить изображения Docker из DockerHub, даже я не могу запустить команду как
Docker info
На обоих концах отображается следующая ошибка.
Произошла ошибка при попытке подключения: Get http://localhost:2375/v1.21/info: наберите tcp 127.0.0.1:2375: ConnectEx tcp: соединение не может быть выполнено, поскольку активная целевая машина отказался.
Если я запустил его в Docker QuickStart Terminal, он работает, но не работает в PowerShell или в MSBuild.
Ответы
Ответ 1
Если вы используете командную строку Windows вместо Docker QuickStart Terminal, см. официальные документы, вы должны сделать следующие шаги (при условии, что ваша машина для докеров имеет имя по умолчанию):
-
docker-machine start default
или создать новый
-
docker-machine ls
покажет вам, что ваша машина работает
-
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\Arseny\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
REM Run this command to configure your shell:
REM FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i
- Запустить
FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i
- Enjoy
Ответ 2
Если вы хотите использовать PowerShell (в Windows 7) вместо Docker Quickstart Terminal, введите следующие шаги шаг за шагом в терминале powershell:
ПРИМЕЧАНИЕ. Прежде всего, перед запуском Docker Quickstart Terminal выполнение операций ниже
docker-machine.exe env --shell powershell
он отобразит ниже команды на терминале:
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.100:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\pratikpat\.docker\machine\machines\default"
$Env:DOCKER_MACHINE_NAME = "default"
# Run this command to configure your shell:
# & "C:\Program Files\Docker Toolbox\docker-machine.exe" env --shell powershell | Invoke-Expression
Выполните последнюю отображаемую команду для настройки вашей оболочки:
& "C:\Program Files\Docker Toolbox\docker-machine.exe" env --shell powershell | Invoke-Expression
Ответ 3
У меня такая же ошибка в Windows 7 внутри Docker Terminal. Поэтому я должен был сделать следующее. Если кто-то вроде меня ищет это.
$ docker-machine rm default
$ docker-machine create --driver virtualbox default
Ответ 4
Все, что мне нужно было сделать, - запустить
docker-machine env --shell cmd default
а затем
eval "$(boot2docker shellinit)"
Ответ 5
Когда это случилось со мной, я был второстепенным пользователем, другими словами Docker
установлен под другой учетной записью. Поэтому я попытался создать систему в качестве администратора:
C:\WINDOWS\system32>docker-machine create --driver "hyperv" default
Creating CA: C:\Users\nonAdmin\.docker\machine\certs\ca.pem
Creating client certificate: C:\Users\nonAdmin\.docker\machine\certs\cert.pem
Running pre-create checks...
(default) Image cache directory does not exist, creating it at C:\Users\nonAdmin\.docker\machine\cache...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v1.12.3
(default) Downloading C:\Users\nonAdmin\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.12.3/boot2docker.iso...
(default) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
Creating machine...
(default) Copying C:\Users\nonAdmin\.docker\machine\cache\boot2docker.iso to C:\Users\nonAdmin\.docker\machine\machines\default\boot2docker.iso...
(default) Creating SSH key...
(default) Creating VM...
(default) Using switch "DockerNAT"
(default) Creating VHD
(default) Starting VM...
(default) Waiting for host to start...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
К сожалению, это не сработало. Даже запуск Docker
в оболочке администратора завершается с ошибкой.
Ответ 6
Вы можете решить проблему на докстере;
Под Settings-> General у вас есть демон Expose на tcp://localhost: 2375 без включенного TLS? Вам нужно, если вы хотите получить доступ к демону, как описано.