Estoy tratando de controlar el servicio docker del host desde dentro de un contenedor.
Con el host de Linux y el contenedor de Linux, generalmente se hace así: docker run -it -v /var/run/docker.sock:/var/run/docker.sock alpine
Ahora quiero lograr lo mismo con un host Docker for Windows y un contenedor de Linux.
Si probé muchas cosas, principalmente usando DOCKER_HOST con IP variables como 10.75.0.1:2375 (IP de docker VM), 172.17.0.1:2375 (IP de contenedor) y 0.0.0.0:2375 , así como 192.168.178.xxx:2375 (IP del servidor).
Pero aparentemente nada responde en el puerto 2375 o 2376 que verifiqué con algo como: docker run -ti --rm alpine /bin/sh -c "apk add -U nmap && nmap -Pn 10.72.0.1 -p 2375-2376"
En este punto, me gustaría saber si esto es posible con Docker para Windows. La mayor parte de la información que encontré se refiere a las combinaciones docker-machine / VirtualBox .
Esto funciona bien cuando se ejecutan contenedores de Linux usando Docker para Windows también (pero no cuando se ejecutan contenedores de Windows). Solo asegúrese de que su shell no reescriba rutas o similar.
No sé cómo funciona SO, así que si el necroposting está mal visto, lo siento. Tampoco uso la ventana acoplable en Windows, pero este hilo surgió durante mi búsqueda para configurar portainer. Descubrí lo que quería averiguar y el primer portainer de inicio de sesión me dio esta advertencia:
Ensure that you have started the Portainer container with the following Docker flag: -v "/var/run/docker.sock:/var/run/docker.sock" (Linux). or -v \\.\pipe\docker_engine:\\.\pipe\docker_engine (Windows).Ahí vas. Espero que ayude.
Para complementar la respuesta de @friism:
Solo asegúrese de que su shell no reescriba rutas o similar.
Esto me estaba pasando dentro de Git Bash en Windows. La solución, en este caso, fue prefijar todas las rutas absolutas con una barra diagonal adicional ( / ) para deshabilitar la reescritura automática de rutas realizada por Git Bash. ( Fuente )