无法连接到位于的Docker守护程序unix:///var/run/docker.sock. docker守护进程正在运行吗?

无法连接到位于的Docker守护程序unix:///var/run/docker.sock. docker守护进程正在运行吗?,docker,vagrant,Docker,Vagrant,问题:我正在尝试在vagrant中运行docker,我的vagrant文件包含以下内容:- config.vm.provision "docker" do |d| d.run "ubuntu", cmd: "bash -l", args: "-v '/vagrant:/var/www'" end docker已安装,但当我运行任何命令时,会出现以下错误:- Cannot connect to the Docker daemon at unix://

问题:我正在尝试在vagrant中运行docker,我的vagrant文件包含以下内容:-

  config.vm.provision "docker" do |d|
     d.run "ubuntu",
       cmd: "bash -l",
       args: "-v '/vagrant:/var/www'"
  end
docker已安装,但当我运行任何命令时,会出现以下错误:-

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

  • root
    身份登录到vagrant并启动docker仍然存在相同问题

  • 在/var/run/docker.sock文件上尝试了
    chmod

  • 似乎什么都不管用

    ps-ef的输出为

    /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
    

    以下是发生在我身上的事情,以及其他人可能的解决方案。我正在运行Ubuntu 16.04

    我最终清除并重新安装了docker ce安装中的所有内容。我指的是一切。仍然不工作

    通过我的互联网魔法,我能够找到一篇文章(我不记得在哪里,有这么多)提到该文件位于:

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

    在Execstart时用-d代替守护进程。我不是这样的。我有…daemon-D…,但我注意到它指向/usr/bin/local/docker。这不存在,但存在的是/usr/bin/docker。在那个位置,你还可以找到docker containerd、dockerd等

    无论如何,我对docker.service文件做了更改——只需从中删除/local。保存的。然后:

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

    成功

    在ssh服务器上,运行:

  • systemctl启动docker

  • systemctl状态docker


  • Docker将在服务器上启动,并且在其各自的服务器上有一个套接字。

    我遇到了一个类似的问题,运行命令
    sudo service Docker restart
    ,然后重新启动Docker映像修复了我的问题 systemctl启动docker.service


    请确保以超级用户身份运行命令,我得到了相同的错误响应。当我签出daemon.json文件时,我发现

    {
         "registry-mirrors": ["http://hub-mirror.c.163.com"]
         "graph": "/etc/docker/mirror"
    }
    
    如你所见,我漏掉了“,”所以我很简单地纠正了它。我真粗心

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

    有时您需要仔细检查代码

    在我的情况下,我必须执行以下操作:

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

    确保docker服务正在运行,或者通过以下方式启动:sudo service docker start。然后尝试将sudo添加到正在执行的run命令中。这里的第一段不是很“StackOverflow”-y。虽然我同意,在其他论坛上,这些答案很烦人,尽管通常是正确的解决方案——太多人只是在网上发问,而没有试图解释他们看到的错误信息——但在StackOverflow上,这种情况不会发生太多,而且,如果人们给出了这些答案,那就是“向下投票”按钮的作用所在。