【问题标题】:FATA[0000] Get http:///var/run/docker.sock/v1.17/version: dial unix /var/run/docker.sockFATA[0000] 获取 http:///var/run/docker.sock/v1.17/version: 拨 unix /var/run/docker.sock
【发布时间】:2015-05-31 09:41:06
【问题描述】:

我使用 this guide 安装 docker。我正在使用

Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:    13.10
Codename:   saucy

即使我按照给定的步骤进行操作,当我发出docker version 命令时,仍会出现以下错误。

Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.17/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

我已经在下面提到过,但它对我不起作用。他们中的大多数都专注于 Mac OS X

Installing a web application in a Docker container: dial unix /var/run/docker.sock: no such file or directory

docker error: /var/run/docker.sock: no such file or directory

Am I trying to connect to a TLS-enabled daemon without TLS?

我该如何解决这个问题?

请看下面的O/P

INFO[0000] +job serveapi(unix:///var/run/docker.sock)   
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
DEBU[0000] Registering POST, /containers/{name:.*}/resize 
DEBU[0000] Registering POST, /containers/create         
DEBU[0000] Registering POST, /containers/{name:.*}/kill 
DEBU[0000] Registering POST, /containers/{name:.*}/start 
DEBU[0000] Registering POST, /containers/{name:.*}/stop 
DEBU[0000] Registering POST, /containers/{name:.*}/copy 
DEBU[0000] Registering POST, /containers/{name:.*}/exec 
DEBU[0000] Registering POST, /exec/{name:.*}/start      
DEBU[0000] Registering POST, /auth                      
DEBU[0000] Registering POST, /build                     
DEBU[0000] Registering POST, /containers/{name:.*}/wait 
DEBU[0000] Registering POST, /containers/{name:.*}/attach 
DEBU[0000] Registering POST, /images/{name:.*}/tag      
DEBU[0000] Registering POST, /containers/{name:.*}/pause 
DEBU[0000] Registering POST, /containers/{name:.*}/rename 
DEBU[0000] Registering POST, /commit                    
DEBU[0000] Registering POST, /images/create             
DEBU[0000] Registering POST, /images/load               
DEBU[0000] Registering POST, /images/{name:.*}/push     
DEBU[0000] Registering POST, /containers/{name:.*}/unpause 
DEBU[0000] Registering POST, /containers/{name:.*}/restart 
DEBU[0000] Registering POST, /exec/{name:.*}/resize     
DEBU[0000] Registering DELETE, /containers/{name:.*}    
DEBU[0000] Registering DELETE, /images/{name:.*}        
DEBU[0000] Registering OPTIONS,                         
DEBU[0000] Registering GET, /containers/{name:.*}/json  
DEBU[0000] Registering GET, /events                     
DEBU[0000] Registering GET, /images/search              
DEBU[0000] Registering GET, /images/get                 
DEBU[0000] Registering GET, /images/{name:.*}/get       
DEBU[0000] Registering GET, /images/{name:.*}/history   
DEBU[0000] Registering GET, /containers/json            
DEBU[0000] Registering GET, /containers/{name:.*}/export 
DEBU[0000] Registering GET, /info                       
DEBU[0000] Registering GET, /images/viz                 
DEBU[0000] Registering GET, /containers/{name:.*}/top   
DEBU[0000] Registering GET, /containers/{name:.*}/logs  
DEBU[0000] Registering GET, /containers/{name:.*}/stats 
DEBU[0000] Registering GET, /exec/{id:.*}/json          
DEBU[0000] Registering GET, /_ping                      
DEBU[0000] Registering GET, /images/json                
DEBU[0000] Registering GET, /images/{name:.*}/json      
DEBU[0000] Registering GET, /containers/{name:.*}/attach/ws 
DEBU[0000] Registering GET, /version                    
DEBU[0000] Registering GET, /containers/ps              
DEBU[0000] Registering GET, /containers/{name:.*}/changes 
DEBU[0000] docker group found. gid: 999                 
DEBU[0000] Using graph driver aufs                      
DEBU[0000] Migrating existing containers                
DEBU[0000] Creating images graph                        
DEBU[0000] Restored 0 elements                          
DEBU[0000] Creating repository list                     
INFO[0000] +job init_networkdriver()                    
DEBU[0000] /sbin/iptables, [--wait -C POSTROUTING -t nat -s 172.17.42.1/16 ! -o docker0 -j MASQUERADE] 
DEBU[0000] /sbin/iptables, [--wait -D FORWARD -i docker0 -o docker0 -j DROP] 
DEBU[0000] /sbin/iptables, [--wait -C FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[0000] /sbin/iptables, [--wait -C FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[0000] /sbin/iptables, [--wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[0000] /sbin/iptables, [--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -D PREROUTING -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -D OUTPUT -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -F DOCKER]    
DEBU[0000] /sbin/iptables, [--wait -t nat -X DOCKER]    
DEBU[0000] /sbin/iptables, [--wait -t nat -n -L DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t nat -N DOCKER]    
DEBU[0000] /sbin/iptables, [--wait -C -m addrtype --dst-type LOCAL] 
DEBU[0000] /sbin/iptables, [--wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -C -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8] 
DEBU[0000] /sbin/iptables, [--wait -t nat -A OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -t filter -n -L DOCKER] 
DEBU[0000] /sbin/iptables, [--wait -C FORWARD -o docker0 -j DOCKER] 
INFO[0000] -job init_networkdriver() = OK (0)           
INFO[0000] WARNING: Your kernel does not support cgroup swap limit. 
DEBU[0000] Restarting containers...                     
INFO[0000] docker daemon: 1.5.0 a8a31ef; execdriver: native-0.2; graphdriver: aufs 
INFO[0000] +job acceptconnections()                     
INFO[0000] -job acceptconnections() = OK (0)            
DEBU[0022] Calling GET /version                         
INFO[0022] GET /v1.17/version                           
INFO[0022] +job version()                               
INFO[0022] -job version() = OK (0)

【问题讨论】:

  • 你试过sudo docker version吗?
  • 是的,给我同样的错误
  • 尝试运行docker -D -d 并告诉我们结果。

标签: linux docker


【解决方案1】:

按照以下解决方案:

sudo chmod -R 777 docker.sock

【讨论】:

  • 即使这确实解决了这个问题,但感觉有点像 hack - 通常设置全局写入是不好的。
【解决方案2】:

我在 ubuntu 14.04 上有这个: FATA[0000] 发布http:///var/run/docker.sock/v1.18/containers/create:拨打 unix /var/run/docker.sock:权限被拒绝。您是否尝试在没有 TLS 的情况下连接到启用 TLS 的守护程序?

我试过了:

  1. sudo usermod -a -G docker yourusername
  2. 重启外壳

这对我有用。

【讨论】:

    【解决方案3】:

    1) 创建一个docker 组

    sudo groupadd docker
    

    2) 将<enter_username> 添加到创建的docker 组中

    sudo usermod -aG docker <enter_username>
    

    3) 重启系统

    sudo reboot
    

    4) 验证是否不再需要使用sudo 运行命令

    执行:docker run hello-world 应该会导致:

    [user@host ~]$ docker run hello-world
    
    Hello from Docker.
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker Hub account:
     https://hub.docker.com
    
    For more examples and ideas, visit:
     https://docs.docker.com/userguide/
    

    参考

    Create a docker group

    【讨论】:

      【解决方案4】:
      1. 停止 docker 守护进程
      2. sudo rm /var/lib/docker/network/files/local-kv.db
      3. 启动 docker 守护进程

      阅读更多: https://github.com/docker/docker/issues/17846

      【讨论】:

        【解决方案5】:

        在 mac 10.9.5 上帮助我的是运行:

        eval "$(boot2docker shellinit)"
        

        【讨论】:

          【解决方案6】:

          首次安装时,您需要使用 sudo,因为 docker 需要绑定到 root 拥有的 Unix 套接字:

          sudo docker version

          如果仍然出现错误,请检查服务是否正在运行:

          sudo service docker start

          如果您想避免使用 sudo,请尝试创建自己并将自己添加到 docker 组。

          sudo usermod -a -G docker &lt;username&gt;

          要激活此更改,请执行 newgrp docker 、注销/登录或重新启动计算机。如果使用newgrp docker,您可能还需要重新启动 docker 守护进程。 (sudo service docker restart) (请注意,docker 组相当于 root...)

          (AppArmor 是我的工作,因为它限制了所有应用程序访问,我不知道它会如何影响 Docker)

          Docker manual 很有帮助。有时。

          【讨论】:

          • 为我工作,需要重启
          【解决方案7】:

          在 OS X 上,boot2docker up 输出:

          To connect the Docker client to the Docker daemon, please set: export DOCKER_CERT_PATH=/Users/thsoft/.boot2docker/certs/boot2docker-vm export DOCKER_TLS_VERIFY=1 export DOCKER_HOST=tcp://192.168.59.103:2376

          执行这些命令解决了我的问题。

          【讨论】:

            【解决方案8】:

            问题是您的用户尚未添加到 docker 组。

            试试:

            sudo usermod -a -G docker <uname>
            

            如果您不想从当前 shell 登录/退出,请运行:

            newgrp docker
            

            【讨论】:

            • 不需要安装apparmor。该解决方案完美运行
            【解决方案9】:

            我在使用 docker 时遇到了错误,@mrother 的回答确实有效。可能是问题不同,所以我只是把这个作为某人的信息。我是新来的,不能添加评论或投票,所以我必须添加一个答案。问题如下:

            $ 码头工人信息

            $ FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: 没有这样的文件或目录。您是否尝试在没有 TLS 的情况下连接到启用 TLS 的守护程序?

            所以我用ps aux|grep docker检查了docker daemon,没有找到。

            所以我手动运行docker -d 并得到了这个:

            FATA[0000] 由于错误而关闭守护程序:加载 docker apparmor 配置文件时出错:退出状态 1(功能缓冲区已满。)

            然后sudo apt-get install apparmor 修复了这个问题。

            【讨论】:

              【解决方案10】:

              这个错误是因为你没有启动docker服务。启动服务后,它会创建 /var/run/docker.sock,然后错误就解决了。

              sudo service docker start

              然后你可以通过sudo docker info查看安装是否正确。

              【讨论】:

              • 谢谢@nkt24。我刚刚安装了 docker,遇到了 OP 提到的问题,您的解决方案为我节省了时间。
              • 除了启动(重启)docker daemon,用户可能需要在docker组中:sudo adduser &lt;username&gt; docker
              【解决方案11】:

              我在 Ubuntu 14.04、3.13.0-39-generic 上遇到了类似的问题 解决方案是:

              sudo apt-get install apparmor

              service docker restart

              【讨论】:

              • 这里有同样的问题。重新启动将解决此问题。
              • 我不明白为什么必须安装 apparmor。重启服务似乎就够了。
              • 为我工作。您可能想尝试使用 sudo 重新启动服务。 sudo service docker restart
              • 对我来说关键是重启服务
              • 是的,这个答案需要说明“为什么”安装 apparmor 会解决问题。暂时投反对票。
              【解决方案12】:

              在 Fedora 21 上我遇到了同样的问题。我安装为sudo su。在我运行service docker restart 之后一切都很好。

              【讨论】:

              • 这解决了我的问题。对我来说确凿的证据是docker -D -d 给了我FATA[0000] Shutting down daemon due to errors: open /var/run/docker.pid: permission denied。
              【解决方案13】:

              我有 Ubuntu 14.04,3.16.0-33-generic。这些步骤对我有用:

              1) 安装docker

              wget -qO- https://get.docker.com/ |嘘

              2) 将您的用户添加到 docker 组:

              sudo usermod -aG docker "用户名"

              3) 重新启动。不知道有没有简单的方法可以避免重启。

              在重新启动之前,这篇文章和其他文章对我没有任何帮助

              【讨论】:

              • 无需重新启动,只需键入:newgrp docker
              猜你喜欢
              • 2021-04-14
              • 2017-08-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-07-11
              • 1970-01-01
              相关资源
              最近更新 更多