Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

docker

vagrant

Problem: I am trying to run docker inside vagrant, my Vagrantfile contains following:-

  config.vm.provision "docker" do |d|
     d.run "ubuntu",
       cmd: "bash -l",
       args: "-v '/vagrant:/var/www'"
  end

docker gets installed but when I run any command it gives the error below:-

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

I have tried

  1. https://docs.oracle.com/cd/E52668_01/E75728/html/section_rdz_hmw_2q.html

  2. logged in as root into vagrant and started docker still same problem.

  3. tried chmod on /var/run/docker.sock file

nothing seems to work.

output of ps -ef is

/usr/bin/dockerd

docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir 
/var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
like image 221
Atul Avatar asked Apr 13 '17 21:04

Atul


2 Answers

Here is what happened to me and what could be a possible solution for someone else. I'm running on Ubuntu 16.04.

I ultimately purged and reinstalled everything from the docker-ce install. I mean everything. Still not working...

Through my internet wizardry I was able to find an article (I can't recall where, there were so many) mentioning that the file located at:

$ sudo nano /etc/systemd/system/docker.service

Had a -d in the place of the daemon at Execstart. That wasn't the case for me. I had ...daemon -D..., but I did notice that it was pointing to /usr/bin/local/docker. That didn't exist, but what does exist is /usr/bin/docker. In that location you will also find docker-containerd, dockerd, etc...

Anyway, I made the change to the docker.service file--simply dropping /local out of there. Saved. Then:

$ systemctl daemon-reload
$ sudo service docker restart
$ sudo service docker status (should see active (running))
$ sudo docker run hello-world

Success!

like image 110
Bicameral Mind Avatar answered Oct 19 '22 01:10

Bicameral Mind


On your ssh server, run:

  1. systemctl start docker

  2. systemctl status docker

Docker will start on the server and have a socket on its respective.

like image 34
Aamir M Meman Avatar answered Oct 19 '22 01:10

Aamir M Meman