Cannot connect to the Docker daemon. Is the docker

2019-01-22 17:12发布

问题:

I have installed docker on ubuntu 14.04, it told me installed successfully. Then I entered sudo docker version, it returned

Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

I entered sudo service docker status, I got

docker start/running, process 8063

I tried sudo docker images and sudo docker info, I got the same reply:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

I do not know why it returned this, I tried to pull ubuntu using sudo docker pull ubuntu, and got

Using default tag: latest
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Please tell me how can I solve this problem, how can I pull and run docker image. And is docker -d the same as docker deamon?

回答1:

You need to add your current user to docker group like following:

sudo usermod -aG docker <your username>

Also, you can use USER environment variable like:

sudo usermod -aG docker $USER

Then restart the system. As the docker documentation says:

The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can access it with sudo. For this reason, docker daemon always runs as the root user.

To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.



回答2:

If adding user to the docker group doesn't work then try restarting the service:

sudo service docker restart 


回答3:

The only way that worked for me (on ubuntu xenial):

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp docker

Found here



回答4:

In my case working answer is

$ docker-machine create -d virtualbox default
$ eval "$(docker-machine env default)"


回答5:

If all the other solutions above don't work you can try checking the ownership of /var/run/docker.sock:

ls -l /var/run/docker.sock

If you're not the owner then change ownership with the command:

sudo chown *your-username* /var/run/docker.sock

Then you can go ahead and try executing the Docker commands hassle-free :D



回答6:

Am not sure if others have used this approach, but when I face this issue of "Is the docker daemon running on this host?", Unsetting docker related environment variables helps recognize the docker daemon running on my machine. The same error message shows up when I open a new tab in the terminal window and unsetting has helped resolve it.

unset ${!DOCKER_*} 


回答7:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

If it's showing this error please check your typecode:

->   docker build -t swagger-ui-builder .

is correctly given. If miss some value show error .

Refer to this site: http://swagger.io/swagger-ui/



标签: ubuntu docker