简体   繁体   中英

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

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

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!

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.

我遇到了类似的问题,运行命令sudo service docker restart ,然后重新启动 docker 映像为我解决了这个问题

Start docker deamon by systemctl start docker.service

Be sure to run command as superuser

i've gotten the same error response. when i checkout the daemon.json file, and i found that

{
     "registry-mirrors": ["http://hub-mirror.c.163.com"]
     "graph": "/etc/docker/mirror"
}

as you can see, i missed "," so i corrected it so simple. how careless i was!

{
     "registry-mirrors": ["http://hub-mirror.c.163.com"],
     "graph": "/etc/docker/mirror"
}

sometimes you need check your code carefully

In my case I had to do:

sudo rm /var/run/docker.pid
sudo docker start [my_container]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM