Docker: An error occurred trying to connect

2019-03-09 22:48发布

Installed Docker on Windows with 2 additional installs, Oracle VM VirualBox and Kitematic. I've disabled Hyper-V in my Windows 10 PC. Now the problem is I can't download any Docker images from DockerHub, not even I can run the command as

Docker info

At both ends it shows the following error.

An error occurred trying to connect: Get http://localhost:2375/v1.21/info: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it.

If I run it in Docker QuickStart Terminal it works, but not working in PowerShell or in MSBuild.

5条回答
做个烂人
2楼-- · 2019-03-09 23:29

If you want to use PowerShell (in Windows 7) instead of Docker Quickstart Terminal then enter following commands step by step in your powershell terminal:

NOTE: You must have to start Docker Quickstart Terminal first before performing below operations

docker-machine.exe env --shell powershell it will display below commands on terminal:

$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

Execute last displayed command to configure your shell:

& "C:\Program Files\Docker Toolbox\docker-machine.exe" env --shell powershell | Invoke-Expression
查看更多
倾城 Initia
3楼-- · 2019-03-09 23:40

I got same error on Windows 7 inside Docker Terminal. So I had to do the following. In case somebody like me is searching for this.

$ docker-machine rm default
$ docker-machine create --driver virtualbox default
查看更多
Anthone
4楼-- · 2019-03-09 23:47

All I got to do was to run

docker-machine env --shell cmd default

and then

eval "$(boot2docker shellinit)"
查看更多
何必那么认真
5楼-- · 2019-03-09 23:47

When it happened to me I was a secondary user, in other words Docker installed under a different account. So I tried [re]creating the machine as Admin:

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

Sadly, it did not work. Even running docker in an Admin shell fails.

查看更多
The star\"
6楼-- · 2019-03-09 23:48

If you are using windows command prompt instead of Docker QuickStart Terminal see official docs you should make following steps (assuming your docker machine has the name default):

  1. docker-machine start default or create new one
  2. docker-machine lswill show you your machine running
  3. docker-machine env --shell cmd default and you'll see something like

    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
    
  4. Run FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i
  5. Enjoy
查看更多
登录 后发表回答