docker-archive / toolbox

The Docker Toolbox
https://docker.com/toolbox
3.22k 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.

dhinar1991 commented 6 years ago

May i know where to find this /etc/docker/daemon.json file in windows. I am using docker toolbox. I am having hard time finding that file :( @lijo-george

fouadroumieh commented 6 years ago

Check also if docker service is running under Windows services, that was the reason in my case.

TNodeCode commented 6 years ago

Hi, for me this helped:

  1. Right click on the docker symbol in your taskbar
  2. Click 'Settings'
  3. Select 'general' tab
  4. Check 'Expose deamon on tcp://localhost:2375 without TLS'

Here is a tutorial with screenshots: https://medium.com/@sebagomez/installing-the-docker-client-on-ubuntus-windows-subsystem-for-linux-612b392a44c4

nathan-wood commented 6 years ago

I had the same error as OP. It appears my machine was having trouble downloading the boot2docker ISO. I was able to resolve by

  1. Downloading the ISO from here: https://github.com/boot2docker/boot2docker/releases/
  2. Placed the ISO here: C:\Users\xxxxxxxx.docker\machine\cache
  3. Re-ran the Docker QuickStart Terminal. Alternatively, run from the command prompt: docker-machine create --driver virtualbox default
  4. Run docker run hello-world to test
SibeeshVenu commented 6 years ago

I was getting this error, while running the command docker-compose up. The problem for me was, the docker service was not running. So I had to run services.msc and start the docker service.

hazzlewis commented 6 years ago

I had to run the docker quickstart terminal, which automatically calls "C:\Program Files\Docker Toolbox\start.sh" in git bash (or in my case, cygwin). This asks for admin permission to do a couple of networky things, then you're done. After that I can use docker toolbox in cygwin, no problem.

namG commented 6 years ago

If anyone's still having this problem which can be really annoying, the following simple commande solved it for me : "C:/ProgramFiles/DockerToolbox/docker-machine.exe" stop "C:/ProgramFiles/DockerToolbox/docker-machine.exe" start

Getitdan commented 6 years ago

I'm getting this error, and I'm not using Docker Toolbox. Only Docker for Windows. Any suggestions please?

jaRobison commented 6 years ago

Had this error running Docker CE on windows 10.

Took me a while to figure out that i had never actually started the Docker for Windows application.

That solved it for me.

Getitdan commented 6 years ago

@jaRobison can you show your docker-compose.yml file? I would like to see how did you set the path to npipe:// protocol. (I'm using Windows 10, and docker is running, but I get the error).

dianasc commented 6 years ago

It's necessary login with an a Docker user ID. (Click with the mouse right button in Icon Docker and informe your user ID and Password) After login restart PowerShell and execute the command.

vasidzius commented 6 years ago

I had the same issue with Windows 10. Firstly I setup Docker Toolbox, then run Docker Quickstart Terminal. ...Profit!

Vvaltz commented 6 years ago

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

Worked for me, thank you very much; Although I have to do this every single time I start working with docker ? Any global/default way?

e.x. I'm using cmder, and I have a very simple script (start.sh):

!/bin/bash

docker-machine start box docker-machine env box @for /f "tokens=*" %i IN ('docker-machine env') DO @%i docker-compose up

The "@FOR... " part doesn't really work, as it shouldn't I believe, since it's not really configuring my current shell (cmder)? Any suggestions ? Appreciated

zeyad82 commented 6 years ago

@Vvaltz this is how I managed to run it automatically when I open cmder.

In config/user-profile.cmd, I added this:

FOR /F "tokens=* USEBACKQ" %%F IN (`docker-machine status`) DO (
    SET machine_status=%%F
)

IF NOT %machine_status% == Running (
    cmd /c "docker-machine start default"
) 

FOR /F "tokens=*" %%i in ('docker-machine env') do @%%i
shaijujanardhanan commented 6 years ago

The following answer helped me:

The boot2docker.iso should be located under c:\user\USERNAME.docker\machine\cache

https://forums.docker.com/t/pre-create-check-failed-when-first-time-launch-docker-quickstart-terminal/9977

extraneu commented 6 years ago

The first thing to do is to run your command with '--verbose', as error handling is lacking in some places, and some commands just print some generic OS error (i.e. "file not found"). In my case "the file not found" was the configuration file; turns out the env variables were not configured because the docker 'default' VM was inaccessible, apparently because of some error in the toolbox installer. That was fixed with this tip: https://github.com/docker/toolbox/issues/453#issuecomment-199250953

dvelopp commented 6 years ago

This commands helped:

docker-machine create box
docker-machine env box

Thank you!

engsamhan commented 5 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 ~

https://docs.docker.com/v17.09/toolbox/faqs/troubleshoot/#solutions in this link will find the answer just type -> $ docker-machine regenerate-certs default

peter-hartmann-emrsn commented 5 years ago

As the error says "This error may also indicate that the docker daemon is not running" - starting docker service did the trick for me:

net start docker
sayed-ali commented 5 years ago

I had the same problem on windows, running docker as an administrator solved the issue

mhdyahiya commented 5 years ago

I also encountered this issue on my windows 10.

  1. Restart you Docker Desktop as administrator
  2. Wait for the docker to the running state.
  3. After that check, run command prompt in administrator mode. This worked fine for me.
shreedhargowda commented 5 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?

May be its too late but issue seems to be proxy settings. Goto Docker Settings, from your desktop trey right click on docker icon, Settings and navigate to Proxies, and set your organization proxy or whatever the proxy you use. Restart the docker engine and check.

Miciah1 commented 5 years ago

Docker for Windows

Unfortunately, I have encountered this problem. The error was verbatim. Make sure you are signed in so you can pull images from the docker hub. From the docker tray icon switch to Windows containers. Open an ELEVATED { Windows Terminal / Standard Command Prompt) . pull your first image: using the command below.

docker run hello-world

retamozodeveloper commented 5 years ago

Hi I had a similar error, I could resolved that. I open Docker desktop as administrator. This is useful for me.

megahoy commented 5 years ago

I ran Docker Desktop as Administrator, the same is for PowerShell - and error disappeared.

tmithun commented 5 years ago

Kill the docker from the task manager and run it again as admin...it solved my problem

fernandokbs commented 5 years ago

My problem was because, I installed docker toolbox. I unistalled it, and the I installed docker for windows.

I had to unistall docker for windows remove the ~/.docker, and delete all DOCKER enviroment variables. It solved my problem.

ghost commented 5 years ago

What worked for me was: 1 - https://success.docker.com/article/docker-for-windows-fails-with-a-daemon-not-running-message 2 - Opening hyper-v manager and restarting any VM related to docker 3 - restarting docker desktop and restart computer

Not sure if all steps are needed though XD

ZiadJ commented 5 years ago

The VM was actually running in a Windows OS rather than Linux for me so clicking on the Switch to Linux Containers menu solved it on my machine. Hope that helps someone in the same situation.

ibenjelloun commented 5 years ago

I had this error while trying to start my docker environment :

ERROR: Windows named pipe error: The system cannot find the file specified. (code: 2)

A look into the Hyper-V Manager and the MobyLinuxVM was not created. What I did to fix : I just quitted Docker Desktop and started it again.

Windows 10/Docker For Windows

olisteadman commented 5 years ago

For me the error was resolved by stopping a virtual Ubuntu instance that'd been running in Hyper-V:

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.

Once Ubuntu instance had been stopped, and Docker Desktop had been restarted, my usual docker commands ran just fine.

PS: I had the idea to try this because of an Error Log that Docker Desktop had helpfully compiled and offered to send to Docker Hub as user feedback... the log appeared to indicate that my machine was short on RAM, and Docker was failing for this very simple reason. Killing the Ubuntu instance solved that.

privojaime commented 5 years ago

Ran into this issue trying to just run docker info

The only solution that worked for me was...

Turn on Docker Desktop Open Powershell with 'Run as Administrator'

Everything else threw this error.

mabez commented 5 years ago

My case, I removed the VM and recreated it trhow the commands: $ docker-machine rm default $ docker-machine create default

elycheikh1 commented 5 years ago

I think you should run docker you install it but it is not running. I had the same issue when I run "docker container ls --all" After running the docker the issue disappear . I am on windows 10

mayankgaur commented 5 years ago

I have resolved this issue by following steps A.

  1. Start-Service “Hyper-V Virtual Machine Management”
  2. Start-Service "Hyper-V Host Compute Service"

OR

B. If you get any error then apply below steps:-

1, Open "Window Security"

2, Open "App & Browser control"

3, Click "Exploit protection settings" at the bottom

4, Switch to "Program settings" tab

5, Locate "C:\WINDOWS\System32\vmcompute.exe" in the list and expand it

6, Click "Edit"

7, Scroll down to "Code flow guard (CFG)" and uncheck "Override system settings"

8, Start vmcompute from powershell "net start vmcompute"

Then Please restart your system

ghost commented 5 years ago

docker-machine ls in case you don't have a running machine docker-machine start then execute docker-machine env | Invoke-Expression or specify machine name docker-machine env machine_name | Invoke-Expression

fkromer commented 5 years ago

@just-tool I followed the installation instructions but the your solution does not work for me and I didn't find a reason for that so far. Have you stumbled over this issue as well?

PS C:\Users\Florian> docker
<docker cli help is displayed like expected>
PS C:\Users\Florian> docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS
PS C:\Users\Florian> docker-machine start
Error: No machine name(s) specified and no "default" machine exists

Seems to be a quite common issue. Would be great to find some hints about this topic in the official docs in case the issue has been closed and a single solution has been found which works for everyone.

BTW: Does anyone know if Docker for Windows (for Win 10 Pro/Enterprise, instead of for Win 10 Home) can be setup without issues right away?

fkromer commented 5 years ago

When I installed Windows Toolbox the first time the desktop icon "Docker Quickstart Terminal" did not work. Unfortunatelly I don't know what error was returned when I tried to run via the icon back then. The commands don't work when they are executed in PS. The commands do only work in the terminal which is created when executing the desktop icon cause it spawns a bash using MINGW. The second time I installed Docker Toolbox I selected "Docker Compose for Windows", "VirtualBox" and "Git for Windows". The first time I did not select "Git for Windows" during installation. Seems like the MINGW environment is installed implicitly with this last option. At least docker run hello-world runs now.

fkromer commented 5 years ago

BTW: Does anyone know if Docker for Windows (for Win 10 Pro/Enterprise, instead of for Win 10 Home) can be setup without issues right away?

As I had no trouble with "Docker for Windows" at all and due a lot of other advantages (no legacy software, native virtualization with Hyper-V instead of Docker Container in VirtualBox VM, native Docker Engine for Windows instead of Docker Engine for Linux running in boot2docker, etc.) I highly recommend to use it instead of "Docker Toolbox".

guandaxia commented 5 years ago

I use babun.exe on Windows 10 , docker-toolbox

 eval $(docker-machine env default)

is worked for me.

if use cmd.exe

@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
santhosh2759 commented 4 years ago

system tray -> docker icon -> settings -> advanced

adjust the memory to 1280

benquinteros commented 4 years ago

I encountered the same error when running docker on a AzureDevOps Agent self hosted vm.

What fixed it for me was adding the network service user to the docker users group.

Ather23 commented 4 years ago

The following steps worked for me: 1- Kill docker desktop 2- Kill any docker daemon running in the background 3- Start Docker Desktop as administrator

egorpavlikhin commented 4 years ago

I encountered the same error when running docker on a AzureDevOps Agent self hosted vm.

What fixed it for me was adding the network service user to the docker users group.

Did you restart your machine after that?

domicoder commented 4 years ago

docker-machine ls in case you don't have a running machine docker-machine start then execute docker-machine env | Invoke-Expression or specify machine name docker-machine env machine_name | Invoke-Expression

It's work for me.

ErimTuzcuoglu commented 4 years ago

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

It worked perfectly on windows 8.1.

antoniskak commented 4 years ago

Installed Docker toolbox for Windows 10 Home and had the same issue:

C:\Program Files\Docker Toolbox\docker.exe: error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/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 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

To solve this in /c/Program Files/Docker Toolbox run

docker-machine create box

then to see how to connect your Docker Client to the Docker Engine running on the virtual machine created run:

docker-machine env box

This will give you the command to run in order to configure your shell:

eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env box)

Check that the installation is running correctly by running

docker run hello-world

krbg commented 4 years ago

Installed Docker toolbox for Windows 10 Home and had the same issue:

C:\Program Files\Docker Toolbox\docker.exe: error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/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 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

To solve this in /c/Program Files/Docker Toolbox run

docker-machine create box

then to see how to connect your Docker Client to the Docker Engine running on the virtual machine created run:

docker-machine env box

This will give you the command to run in order to configure your shell:

eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env box)

Check that the installation is running correctly by running

docker run hello-world

This worked perfectly on Win 10 with Docker toolbox. Nothing else worked. Thanks @antoniokak

tylercranston commented 4 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

I added "npipe://" to daemon.json and that fixed the issue for me:

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

Gander7 commented 4 years ago

@antoniokak Thank you so much. Exactly what I needed after much frustrating troubleshooting. The only update is the docker-machine env box gave me the command to run and I didn't need to use eval. :)