Docker

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Cualquier comando de Docker falla igual. El cliente y el demonio son dos cosas distintas y hablan por un socket Unix.

Qué comprobar, y en qué orden

En el orden en que lo miramos nosotros. No es un ranking de frecuencia: no publicamos estadísticas que no hemos medido.

  1. 1

    El demonio no está corriendo.

    Comprobar

    sudo systemctl status docker

    Corregir

    sudo systemctl start docker && sudo systemctl enable docker
  2. 2

    Tu usuario no pertenece al grupo docker, así que no puede abrir el socket.

    Comprobar

    id -nG | tr ' ' '\n' | grep -x docker

    Corregir

    sudo usermod -aG docker $USER
    # Hay que abrir una sesión nueva: los grupos se leen al iniciar sesión.
    # Pertenecer al grupo docker equivale a tener root en la máquina; concédelo
    # sabiendo eso.
  3. 3

    El demonio no arrancó, normalmente por disco lleno o por un fichero de configuración con JSON inválido.

    Comprobar

    sudo journalctl -u docker -n 50 --no-pager
    sudo cat /etc/docker/daemon.json 2>/dev/null | python3 -m json.tool

    Corregir

    # Corregir daemon.json o liberar espacio y reintentar.
  4. 4

    DOCKER_HOST apunta a otro sitio, heredado de una configuración remota o de un contexto.

    Comprobar

    echo "$DOCKER_HOST"
    docker context ls

    Corregir

    unset DOCKER_HOST
    docker context use default

Los comandos de esta página se ejecutan en tu servidor y algunos modifican la configuración: léelos antes de pegarlos. Las rutas y los nombres de servicio varían entre distribuciones. Así se elabora este catálogo.