Ubuntu Docker Compose can';无法连接到Docker守护进程

Ubuntu Docker Compose can';无法连接到Docker守护进程,ubuntu,terminal,docker,docker-compose,Ubuntu,Terminal,Docker,Docker Compose,我收到一条错误消息,说我无法连接到docker守护进程。我调查过其他有类似问题的人的答案,但没有帮助。我正在运行Ubuntu 15.10的版本。我会尽力提供我所有的信息 root@# docker-compose -f docker-compose-deps.yml up -d ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-s

我收到一条错误消息,说我无法连接到docker守护进程。我调查过其他有类似问题的人的答案,但没有帮助。我正在运行Ubuntu 15.10的版本。我会尽力提供我所有的信息

root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Docker版本

root@# sudo docker     version
Client:
Version:      1.9.1
API version:  1.21
Go version:   go1.4.2
Git commit:   a34a1d5
Built:        Fri Nov 20 13:20:08 UTC 2015
OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker编写版本

root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
如果我尝试停止或启动服务,就会发生这种情况

root@# sudo service docker stop
stop: Unknown instance: 
root@# sudo service   docker start
docker start/running, process 5375
如果我运行ps aux|grep docker

root@# ps aux | grep docker
root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker
任何帮助都将不胜感激。如果您需要更多信息,请告诉我。

从“ps aux | grep docker”的输出来看,docker守护进程似乎没有运行。试着用下面的方法看看是什么错了,为什么docker没有启动

  • 检查docker日志
  • $sudo tail-f/var/log/upstart/docker.log

  • 尝试在调试模式下启动docker

  • $sudo docker-d-d

    我找到了这个,它似乎解决了我的问题


    我更改了docker-compose-deps.yml文件的内容,如链接中所示。然后我运行了
    docker compose-f docker-compose-deps.yml up-d
    。然后我把它换了回去,因为某种原因它起了作用。我不必继续我提供的链接中的步骤,但前两个步骤为我解决了问题。

    调试15分钟后,我遇到了相同的错误。原来它只需要一个
    sudo
    :)


    查看以删除sudo前缀。

    我也遇到了同样的问题。在做了笔记并分析了一些调试结果之后,我终于解决了可能出现的相同错误。首先启动服务

    service docker start


    不要忘记将您的用户包括到docker组。

    当当前用户无法访问
    Dockerfile
    目录中的文件时,我遇到了此错误<因此,code>docker无法将完整上下文上载到守护程序,并导致“无法通过http连接到docker守护程序”+docker://localunixsocket消息。

    您的问题似乎是由旧的Docker错误造成的,Docker崩溃后,套接字文件没有重新创建。如果这是问题所在,则重命名套接字文件应允许重新创建它:

    $ sudo service docker stop
    $ sudo mv /var/lib/docker /var/lib/docker.bak
    $ sudo service docker start
    
    由于此错误已修复,大多数出现错误
    的人无法连接到Docker daemon
    可能是因为他们不在
    Docker
    组中,并且没有读取该文件的权限。运行
    sudocker…
    可以解决这个问题,但这不是一个很好的解决方案

    Docker可以作为具有适当组权限的非root用户运行(无
    sudo
    )。报告中有细节。简短版本:

    $ 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
    

    这允许
    docker
    组中的用户在不使用
    sudo
    的情况下运行
    docker
    docker compose
    命令。Docker本身运行一个根目录,允许一些攻击,因此您仍然需要小心您运行的容器。有关更多详细信息,请参阅。

    在我的情况下,您的docker服务可能会停止

    启动docker服务的命令:

    $sudo systemctl start docker

    root@# ps aux | grep docker
    root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker
    
    用于验证其是否启动的命令:


    $sudo docker run hello world
    我遇到了这个问题,不想用
    sudo
    把事情搞砸。调查时,我试图获得一些信息:

    docker info
    
    令人惊讶的是,我犯了以下错误:

    尝试连接到处的Docker守护程序套接字时,权限被拒绝unix:///var/run/docker.sock: Get:dial unix/var/run/docker.sock:connect:权限被拒绝

    由于某些原因,我没有足够的权限,以下命令解决了我的问题:

    sudo chown $USER /var/run/docker.sock
    

    我使用Ubuntu 16.04,在使用docker compose时也发现了这个问题。 我通过运行这个命令修复了它

    $ sudo systemctl start docker
    $ sudo docker-compose build
    

    出现此错误的另一个原因是:对我来说,这是docker compose.yml中格式不正确的图像路径定义:

      service:
        image: ${CONTAINER_REGISTRY_BASE}/my-service
       ...
    
    首先看起来还行,但我在env上设置了
    CONTAINER\u REGISTRY\u BASE=eu.gcr.io/my project/
    。显然,映像路径中的
    /
    导致了此错误

    docker-compose: v.1.21.2
    docker: 18.03.1-ce
    

    您应该使用以下内容将用户添加到“docker”组:


    sudo usermod-aG docker${USER}


    在我的例子中,当我尝试
    docker编写构建时,a会出现相同的错误
    我的解决方案就是添加
    sudo

    sudo docker-compose build
    

    您删除默认机器的可能性很小吗? 但是,首先检查是否所有文件都存在(OSX,其他系统上类似)

    另外,安装Docker应用程序,因为维护容器更容易:

    brew cask reinstall docker
    
    ans从finder启动Docker应用程序(等待服务完全启动)

    然后,用以下方法检查安装:

    docker-machine ls
    
    如果列表中没有机器,请创建一台并启动它:

    docker-machine create default
    docker-machine start default
    

    在此之后,build、compose和所有其他命令都应该正常工作。

    对我来说,修复方法是使用安装较新版本的
    docker compose


    以前的版本(1.17)是从ubuntu的默认存储库安装的,但在安装了新版本后,我设法启动了容器。希望它能帮助别人。

    我想这是因为访问权,你只需要写就行了

    sudo docker-compose-deps.yml up
    

    解决此问题的一种方法是首先通过运行以下命令将用户添加到
    docker

    sudo usermod -aG docker $USER
    

    重要提示:请记住退出您的系统(不仅仅是您的终端)并重新登录,以使其生效

    试试
    sudo
    。好像是权限问题

    sudo docker-compose -f docker-compose-deps.yml up -d
    

    这对我来说很有效。

    就我而言,这是因为ubuntu的许可

  • 列表项
  • 通过检查权限

    docker info 
    
    如果他们打印问题许可, 然后使用

    sudo chmod -R 777 /var/run/docker.sock
    

    在我的例子中,问题在于图像标签名称不正确
    -后端
    -以短的前导破折号开始:

    失败:

    version: '2.4'
    
    services:
      my-service:
        container_name: my.backend
        image: imagename:-backend
        build:
          context: .
        
    
    错误消息:

    ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
    
    有效:使用
    我的后端

    version: '2.4'
    
    services:
      my-service:
        container_name: my.backend
        image: imagename:my-backend
        build:
          context: .
        
    

    他们需要一个更好的错误=/这个问题有13000名访客,你保存了