“Cannot connect to the Docker daemon” appears when the Docker CLI is unable to communicate with a Docker daemon instance using your current configuration. This is often because the Docker daemon service has been stopped or disabled. You could also be trying to connect to a remote Docker host that's gone offline.
Docker daemon is not running – Resolution 1: Restart Docker service. This error meant the docker daemon is unreachable. Docker daemon fails to start up on Windows or stops for some reason and especially when you try to run any commands. To fix such types of issues restarting the service will resolve the error.
I had the same error, after 15 min of debugging. Turns out all it needs is a sudo
:)
Check out Manage Docker as a non-root user to get rid of the sudo prefix.
I had this problem and did not want to mess things up using sudo
. When investigating, I tried to get some info :
docker info
Surprinsingly, I had the following error :
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http:///var/run/docker.sock/v1.38/info: dial unix /var/run/docker.sock: connect: permission denied
For some reason I did not have enough privileges, the following command solved my problem :
sudo chown $USER /var/run/docker.sock
Et voilà !
It appears your issue was created by an old Docker bug, where the socket file was not recreated after Docker crashed. If this is the issue, then renaming the socket file should allow it to be re-created:
$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start
Since this bug is fixed, most people getting the error Couldn't connect to Docker daemon
are probably getting it because they are not in the docker
group and don't have permissions to read that file. Running with sudo docker ...
will fix that, but isn't a great solution.
Docker can be run as a non-root user (without sudo
) that has the proper group permissions. The Linux post-install docs has the details. The short version:
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups # docker should be in the list of groups for your user
$ docker run hello-world # Works without sudo
This allows users in the docker
group to run docker
and docker-compose
commands without sudo
. Docker itself runs a root, allowing some attacks, so you still need to be careful with what containers you run. See Docker Security Documentation for more details.
I had the same issue. After taking notes and analyzing some debugging results, finally, I solved what can be the same error. Start the service first,
service docker start
Don't forget to include your user to the docker group.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With