Bind to docker socket on Windows

For Docker for Windows following seems to be working:

-v //var/run/docker.sock:/var/run/docker.sock


As the Docker documentation states:

If you are using Docker Machine on Mac or Windows, your Engine daemon has only limited access to your OS X or Windows filesystem. Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory. So, you can mount files or directories on OS X using:

docker run -v /Users/<path>:/<container path> ...

On Windows, mount directories using:

docker run -v /c/Users/<path>:/<container path> ...

All other paths come from your virtual machine’s filesystem, so if you want to make some other host folder available for sharing, you need to do additional work. In the case of VirtualBox you need to make the host folder available as a shared folder in VirtualBox. Then, you can mount it using the Docker -v flag.

With all that being said, you can still use the:

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

The first /var/run/docker.sock refers to the same path in your boot2docker virtual machine.

For example, when I run my own Jenkins image using the following command in a Windows machine:

$ docker run -dP -v /var/run/docker.sock:/var/run/docker.sock alidehghanig/jenkins

I can still talk to the Docker Daemon in the host machine using the typical docker commands. For example, when I run docker ps in the Jenkins container, I can see running containers in the host machine:

CONTAINER ID   IMAGE  COMMAND   CREATED  STATUS  PORTS        NAMES
65311731f446   jen... "/bi.."   10...    Up 10.. 0.0.0.0:..  jenkins

Just to top it off on the answers provided earlier

When using docker-compose, one must set the COMPOSE_CONVERT_WINDOWS_PATHS=1 by either:

1) create a .env file at the same location as the project's docker-compose.yml file

2) in the CLI set COMPOSE_CONVERT_WINDOWS_PATHS=1

before running the docker-compose up command.

source


This never worked for me on Windows 10 even if it is a linux container:

-v /var/run/docker.sock:/var/run/docker.sock

But this did:

-v /usr/local/bin/docker:/usr/bin/docker

Solution taken from this issue i opened: https://github.com/docker/for-win/issues/4642