docker-in-docker: `No se puede conectar al demonio Docker en tcp: / / docker: 2375`

Estoy tratando de usar manualmente el ventana acoplable:19.03.5-adaptador imagen como se muestra en la sección "Cómo usar esta imagen".

  • Primero estoy ejecutando el demonio

    $ docker run --privileged -d --rm --name=docker-daemon \             --network=test  docker:19.03.5-dinde1f8544d30df5bc010d67e38b38be0f47306b29ab0fdeb32861c5716582c9917
  • Veo que está activo y escucha en el puerto 2376

    $ docker logs docker-daemon...time="2019-11-28T11:31:40.266976728Z" level=info msg="Daemon has completed initialization"time="2019-11-28T11:31:40.550083421Z" level=info msg="API listen on [::]:2376"time="2019-11-28T11:31:40.550169911Z" level=info msg="API listen on /var/run/docker.sock"
  • A continuación, abro el cliente Docker:

    $ docker run -it --rm --name=my-docker \      --network=test --link=docker-daemon:docker docker:19.03.5
  • Desde el cliente puedo hacer ping al docker-demonio y su ventana acoplable otro

    # ping docker-daemon -c1PING docker-daemon (172.20.0.2): 56 data bytes64 bytes from 172.20.0.2: seq=0 ttl=64 time=0.146 ms...# ping docker -c1PING docker (172.20.0.2): 56 data bytes64 bytes from 172.20.0.2: seq=0 ttl=64 time=0.177 ms...
  • Pero aún así no puedo ejecutar Docker:

    # docker psCannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

¿No debería intentar conectarse en el puerto 2376? ¿Qué me estoy perdiendo aquí?


Mi host ejecuta Ubuntu 18.04 con Docker versión 18.09.7, compilación 2d0083d

Debe seguir los pasos de la documentación vinculada que incluyen montar el directorio de certificados como un volumen en ambos contenedores y pasar la variable env en el contenedor del cliente:

$ docker run --privileged --name some-docker -d \    --network some-network --network-alias docker \    -e DOCKER_TLS_CERTDIR=/certs \    -v some-docker-certs-ca:/certs/ca \    -v some-docker-certs-client:/certs/client \    docker:dind$ docker run --rm --network some-network \    -e DOCKER_TLS_CERTDIR=/certs \    -v some-docker-certs-client:/certs/client:ro \    docker:latest version

La primera imagen rellena el montaje del volumen y la segunda imagen utiliza esos certificados para comunicarse a través de 2376. Sin los certificados, está intentando conectarse al puerto 2375 sin cifrar que no está habilitado de forma predeterminada en las imágenes 19.03 dind.