docker-archive / toolbox

The Docker Toolbox
https://docker.com/toolbox
3.21k stars 1.23k forks source link

Cannot run docker from windows. #636

Open NimmiW opened 7 years ago

NimmiW commented 7 years ago

I installed docker windows toolkit and enabled the BIOS virtualization.

docker version gives the following:

Client: Version: 17.03.0-ce API version: 1.26 Go version: go1.7.5 Git commit: 60ccb22 Built: Thu Mar 2 01:11:00 2017 OS/Arch: windows/amd64 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/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.

Now I am getting this error when trying to docker docker ps

error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/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.

NimmiW commented 7 years ago

Can someone help me with this. I am a beginner.

paladinram commented 7 years ago

Same problem downloaded docker windows tool kit latest one yesterday and trying to do the installation in windows 10 and enabled BIOs facing error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/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.

Please help.. tried with many forums no luck

bacongobbler commented 7 years ago

Can you both confirm that you have a vm running under docker-machine? Usually that error indicates that you have the client installed but don't have an engine running.

From within cmder:

λ set | grep DOCKER
DOCKER_CERT_PATH=C:\Users\bacongobbler\.docker\machine\machines\deis
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_MACHINE_NAME=deis
DOCKER_TLS_VERIFY=1
DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

λ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
deis   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.03.0-ce

λ docker ps -a
time="2017-03-23T11:11:55-07:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

λ docker pull busybox
time="2017-03-23T11:13:07-07:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
Using default tag: latest
latest: Pulling from library/busybox
7520415ce762: Pull complete
Digest: sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
Status: Downloaded newer image for busybox:latest
paladinram commented 7 years ago

I installed only the docker toolbox.. didn't download any docker machine separately. please guide

bacongobbler commented 7 years ago

It's part of the docker toolbox. Use docker-machine create box.

paladinram commented 7 years ago

ok, I will create it now

bacongobbler commented 7 years ago

I'm going to un-sub from this discussion, but please make sure to follow the official documentation as descibed in great detail here: https://docs.docker.com/toolbox/toolbox_install_windows/

I'm not a Docker dev, just some bum who decided to try out Docker on Windows. Cheers.

paladinram commented 7 years ago

ok, Thanks

paladinram commented 7 years ago

just a qq: I done with machine.I can see the machine version too.. but when I execute docker ps facing error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/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.

getting same error..

bacongobbler commented 7 years ago

Did you set the environment variables as suggested? See my comment above on set output. Those can be fetched with docker-machine env box.

Please follow through the documentation.

paladinram commented 7 years ago

Yes, please see below: C:\Users\xxxxx>set DOCKER DOCKER_CERT_PATH=C:\Users\Tarangini.docker\machine\machines\deis DOCKER_HOST=tcp://192.168.99.1:50675 DOCKER_MACHINE_NAME=deis DOCKER_TLS_VERIFY=1 DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

paladinram commented 7 years ago

C:\Users\Tarangini>docker ps time="2017-03-23T15:59:43-05:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows" could not read CA certificate "C:\Users\Tarangini\.docker\machine\machines\deis\ca.pem": open C:\Users\Tarangini.docker\machine\machines\deis\ca.pem: The system cannot find the file specified.

paladinram commented 7 years ago

Appreciating your help for the beginners.. you can see what am getting

C:\Users\Tarangini>docker run hello-world time="2017-03-23T16:05:42-05:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows" could not read CA certificate "C:\Users\Tarangini\.docker\machine\machines\deis\ca.pem": open C:\Users\Tarangini.docker\machine\machines\deis\ca.pem: The system cannot find the file specified.

paladinram commented 7 years ago

Tarangini@Tara MINGW64 ~ $ docker -v time="2017-03-23T16:35:39-05:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows" could not read CA certificate "C:\Users\Tarangini\.docker\machine\machines\deis\ca.pem": open C:\Users\Tarangini.docker\machine\machines\deis\ca.pem: The system cannot find the file specified.

Tarangini@Tara MINGW64 ~ $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default virtualbox Timeout deis virtualbox Timeout

Tarangini@Tara MINGW64 ~ $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default virtualbox Timeout deis virtualbox Timeout

Tarangini@Tara MINGW64 ~ $ docker-machine env Error checking TLS connection: ssh command error: command : ip addr show err : exit status 255 output :

Tarangini@Tara MINGW64 ~

ntomer commented 7 years ago

Try using the default 'Docker Quickstart Terminal' shortcut to run your commands. That worked for me.

popey456963 commented 7 years ago

@ntomer That works, but isn't optimal for people who use an external command prompt, like cmder.exe.

ngetahun commented 7 years ago

@paladinram make sure the docker machine default name is 'deis'.

sebastiansterk commented 7 years ago

Try this, solved my problem:

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

Replace "default" by your docker VM name

nsidhaye commented 7 years ago

Thanks @owhen

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

works

siran commented 7 years ago

Im on Win10 but I tried installing Docker Toolbox and running

docker run hello-world

But the error is issued: docker: error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.30/containers/create: 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. See 'docker run --help'.

Already tried many suggestions of this thread, but its still no working.

Any ideas?

adrianwright commented 7 years ago

I encountered this because I had disabled the Hyper-V service in Windows so that I could run VirtualBox. After a reboot, Docker notified me that the service needed to be running (which would keep VirtualBox from functioning). This resolved the issue.

siran commented 7 years ago

Hyper-V apparently is for Windows 10. I'm trying to use Docker Toolbox because we need support for older versions of Windows, not only 10. I still can't run hello-world as described in Docker Toolbox's documentation

jsmithe commented 7 years ago

@siran While using Docker Toolbox installation are attempting commands from the Docker Quickstart Terminal or something else? If you are using another terminal try 'docker-machine ssh default' (assuming you are using default). From their you can run 'docker images', 'docker info', 'docker ps', etc.

vinayk8125 commented 7 years ago

try after install the virtualbox in "Program Files\Docker Toolbox\installers\virtualbox\virtualbox.msi"

IllyaMoskvin commented 7 years ago

I was getting this error. The approximate steps I took are as follows:

  1. Run Kitematic (Alpha) and choose to create the Docker VM.
  2. Run cd "/c/path/to/docker toolbox"; ./start.sh in your terminal

I had to run Kitematic twice, since the first time it ran out of buffer or something to that effect. The operation completed successfully on my second try.

The "Docker Quickstart Terminal" shortcut just runs start.sh, so if you are using a different command prompt (e.g. cmder.exe), just change your shortcut target as follows:

"C:\path\to\cmder.exe" -c "cd '/c/path/to/docker toolbox'; ./start.sh"

There's a related issue where start.sh will not run when you are not within its directory, thus you need to cd into wherever you've installed Docker Toolbox in order to get it to work, until that issue is resolved (#687). Just make sure to quote your paths if they contain spaces.

polotto commented 7 years ago

I followed the @bacongobbler answer and I make some changes to work with Docker inside the PowerShell. I using Docker Tools on Windows 7.

First, list all machines: docker-machine ls If you don't have one, you can create one with: docker-machine create default Start the machine, if stopped: docker-machine start default Connect with machine via SSH: docker-machine ssh default

Now, you can use the docker inside the PowerShell or even inside the Hyper (https://hyper.is).

navarq commented 7 years ago

This problem occurred after the recent update.

I am using windows 10 pro

Simply restarting my machine solved the issue.

mohdamir commented 7 years ago

I have moved the docker bin path to last in PATH environment variable and this worked for me.

lijo-george commented 6 years ago

For me, this error was resolved after I removed 'daemon.json' file in "%programdata%\docker\config"

The content in my 'daemon.json' is the following:

{

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

}

I created this manually as part of some testing. But after I restarted the server, I started to get the error in this question

chandra-mohan-reddyy commented 6 years ago

I had same problem but I have resolved using 'docker-machine ssh default'. Thanks @jsmithe

jafetmorales commented 6 years ago

I needed to create a VM as follows, to stop getting that error:

docker-machine create box
docker-machine env box

**For the command below, do whatever comes out in the comment that is printed when you execute docker-machine env box & "C:\Program Files\Docker Toolbox\docker-machine.exe" env box | Invoke-Expression

sunny2get commented 6 years ago

This guide worked like a charm for me for those looking to use CMDER to run the docker-toolbox

rlvillacarlos commented 6 years ago

The solution from @jsmithe works for me too.

strarsis commented 6 years ago

@jsmithe: Can the docker commands also be run directly, not over SSH? I want to use docker on WSL/Bash on Windows.

disappearwang commented 6 years ago

This works for me : (I have a created machine named "default")

eval $(docker-machine env default) docker run hello-world

rlvillacarlos commented 6 years ago

Just recently I find it best to just use the Docker Quickstart Terminal bundled with the docker toolkit

strarsis commented 6 years ago

@rlvillacarlos: But I want to use it inside my WSL shell with all the other *nix tools.

ciruz commented 6 years ago

I got a new rig and thought I can save some time, installing Docker Toolbox directly, since I use Kitematic sometimes. But in the end, I got the same errors like @NimmiW .

Using the latest Windows Installer from Docker stable channel, fixed everything:

Shinepans commented 6 years ago

@owhen Thanks a lot

strarsis commented 6 years ago

@ciruz: You have Windows 10 > Home? Because on Home only VirtualBox is available.

ciruz commented 6 years ago

I got Win 10 Pro. As I said, after installing docker directly everything was fixed. Is there another version bundled with toolbox or does the toolbox installer use different settings?

strarsis commented 6 years ago

@ciruz: For Windows 10 Home there is no Hyper-V available and VirtualBox has to be used instead - which only is usable with the Docker Toolbox instead Docker for Windows.

jhanka commented 6 years ago

When you're running command 'docker-machine env default' it is possible that command is showing an invalid path for 'docker_cert_path' in Windows. e.g. Correct path could be something like this: SET DOCKER_CERT_PATH=C:\Users\YOUR_USERNAME\.docker\machine\certs

Verify if ...docker\machine\certs\ contains .pem files and set that path to the DOCKER_CERT_PATH variable and voilá =)

strarsis commented 6 years ago

@jhanka: https://gist.github.com/strarsis/44ded0d254066d9cb125ebbb04650d6c

zeyad82 commented 6 years ago

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

nikhilbchilwant commented 6 years ago

@NimmiW Time to close this?

luxaritas commented 6 years ago

@nikhilbchilwant If it's possible for a user to set things up (ie, create the VM and setting the necessary environment variables) manually (even for multiple shells and persistence through a reboot, I've done that on accident actually), I see no reason why the installer shouldn't handle the configuration itself, for which I would keep this issue open.

Kirkaiya commented 6 years ago

I had the same error as the original post in this thread ("..._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 Everything had been running fine previously. I right-clicked docker in the task-bar notifications error, switched from Linux containers back to Windows containers (and waited for that to complete, it takes a few seconds!), ran "docker ps" (which now worked!), then switched back to Linux containers again, and now I'm able to run hello-world again.

Maybe this will help someone else.

thilinaviraj commented 6 years ago

Since I don't have any running containers and didn't configure the proxy settings, I just reset the docker from the UI and it works. This may not be the best practice. Use this if you don't have any options at all.

dgordon commented 6 years ago

Make sure that Docker is running as Admin but, also make sure VS is also running as Admin.. that was the solution for me. :/