Linux Docker命令可以';无法连接到Docker守护进程

Linux Docker命令可以';无法连接到Docker守护进程,linux,ubuntu,docker,daemon,Linux,Ubuntu,Docker,Daemon,我想搬到Docker去,所以我才开始胡闹。我已经在VirtualBox Ubuntu 15.10(狡猾的狼人)上安装了Docker,然后我尝试运行一个基本的Docker映像: $ docker run --name mynginx1 -P -d nginx Cannot connect to the Docker daemon. Is the docker daemon running on this host? 所以我检查了Docker是否在运行: $ sudo service docker

我想搬到Docker去,所以我才开始胡闹。我已经在VirtualBox Ubuntu 15.10(狡猾的狼人)上安装了Docker,然后我尝试运行一个基本的Docker映像:

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
所以我检查了Docker是否在运行:

$ sudo service docker status
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
     Docs: https://docs.docker.com
 Main PID: 7542 (docker)
   CGroup: /system.slice/docker.service
           └─7542 /usr/bin/docker daemon -H fd://

nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
这表明Docker守护程序实际上已经在运行,但我只是手动启动了Docker守护程序:

$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock           
INFO[0000] [graphdriver] using prior storage driver "aufs" 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support swap memory limit. 
INFO[0000] Loading containers: start.                   

INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
然后我再次尝试运行该图像,但结果相同:

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

我试着执行命令,但没用。我做错了什么

在Ubuntu上安装docker后,我运行了以下命令:

sudo service docker start
sudo mv /var/lib/dpkg/info/docker-ce* /tmp
您试过了吗?

以root身份输入(
sudo su
)并尝试以下操作:

unset DOCKER_HOST
docker run --name mynginx1 -P -d nginx
我在这里也遇到了同样的问题,docker命令只能作为root用户运行,并且这个
docker\u主机也是空的


PS:还要注意Ubuntu上的应用程序是使用他们的apt存储库(即使在15.10版),而不是使用“wget”的东西。

我也有同样的问题。两天来一直在努力解决这个问题

只有当我这样做时,它才起作用:

  • 根据,如果尚未添加Docker密钥,则需要使用以下方法添加Docker密钥:

    $sudo wget-qO-https://get.docker.com/gpg |sudo apt按键添加-

  • 然后确保您使用以下方式向自己授予docker权限:

    $sudo usermod-aG docker$USER


  • 希望这对您也有帮助。

    您需要将当前用户添加到docker组,如下所示:

    sudo usermod -aG docker $(whoami)
    
    然后注销并再次登录系统或重新启动系统。 由docker版本进行测试


    有关如何安装docker engine的更多信息,请按照以下说明进行操作:当我忘记使用
    sudo
    运行
    docker
    命令时,我从问题标题中得到错误:

    sudo docker run…


    [Ubuntu15.10]

    通常,以下命令起作用:

    sudo service docker restart
    
    对于docker似乎已经在运行的情况,这将代替
    docker start

    如果这样做有效,那么按照建议和另一个答案,如果您尚未将自己添加到docker组中,请通过运行:

    sudo usermod -aG docker <your-username> 
    
    如果输出看起来像:
    docker stop/waiting
    而不是
    docker start/running,则进程15378
    显然表示docker未处于活动状态。在这种情况下,请确保从以下内容开始:

    sudo service docker start
    

    而且,和以前一样,您很可能会很乐意去做。

    在安装完所有内容并启动服务后,请尝试关闭您的终端并再次打开,然后尝试拉取您的映像

    编辑 我还遇到了这个问题,如果上面的解决方案不起作用,请尝试下面的命令

    sudo mv /var/lib/docker/network/files/ /tmp/dn-bak
    
    tail -5f /var/log/upstart/docker.log
    

    考虑 如果上面的命令起作用,您可能遇到了网络docker问题,无论如何这可以解决它,要确认这一点,请参阅下面带有命令的日志

    sudo mv /var/lib/docker/network/files/ /tmp/dn-bak
    
    tail -5f /var/log/upstart/docker.log
    
    如果输出有类似的内容

    FATA[0000] Error starting daemon: Error initializing network controller: could not delete the default bridge network: network bridge has active endpoints 
    /var/run/docker.sock is up
    
    您确实遇到了网络问题,但是我还不知道下次重新启动(更新,2个月后不再出现问题)您的操作系统是否会再次出现此问题,以及它是错误还是安装问题

    我的docker版本

    Client:
     Version:      1.9.1
     API version:  1.21
     Go version:   go1.4.2
     Git commit:   a34a1d5
     Built:        Fri Nov 20 13:12:04 UTC 2015
     OS/Arch:      linux/amd64
    
    Server:
     Version:      1.9.1
     API version:  1.21
     Go version:   go1.4.2
     Git commit:   a34a1d5
     Built:        Fri Nov 20 13:12:04 UTC 2015
     OS/Arch:      linux/amd64
    

    将用户添加到docker组

    • 如果docker组尚不存在,请添加该组:

      sudo groupadd docker

    • 将连接的用户“${user}”添加到docker组:

      sudo gpasswd-a${USER}docker

    • 重新启动Docker守护程序:

      sudo服务docker重启

    • 执行
      newgrp docker
      或注销/登录以激活对的更改 小组


    这个问题目前在谷歌搜索中排名第三。在我的Linux系统上做了一些关于解决这个问题的研究之后,我想我会写下这个答案。最初的帖子说问题出在Ubuntu上,但我在使用Fedora时也遇到过这个问题。考虑到这一点,下面是我为解决问题所做的

    论软呢帽22

    安装Docker:

    $> curl -fsSL https://get.docker.com/ | sh
    
    安装Docker后:

    $> curl -fsSL https://get.docker.com/ | sh
    
    需要将用户添加到docker组

    $> sudo usermod -aG docker
    
    需要启动docker守护进程

    $> sudo service docker start
    
    您可以将守护进程设置为在启动时启动

    $> sudo chkconfig docker on
    
    您可以验证docker服务是否正在运行

    $> service docker status
    
    还有最后一次检查

    $> docker run hello-world
    

    我在AmazonEC2实例上遇到了同样的错误。重新启动实例后,该问题已得到修复。

    请尝试在正在运行的命令中使用“sudo”

    对于OSX

    在打开docker并通过Quickstart终端()启动“默认”计算机后,您尝试docker命令并获得此“无法连接到docker守护程序”消息,结果表明您需要设置一些环境变量。

    eval“$(docker机器环境默认值)”


    然后用docker run hello world试试看是否一切正常。

    对于那些已经尝试重新启动计算机的人,请按照中的说明取消环境变量docker\u HOST的设置,其他人只需按照

    sudo service docker restart
    

    只有这样,即使在重新启动机器后,我也能做到这一点。

    我在运行docker时也遇到了同样的问题

    您可以作为sudo用户运行命令:

    sudo docker ***your command here***
    

    对于Ubuntu:
    我更新docker时发生的事。
    您需要取消对服务和套接字的屏蔽,然后重新启动服务。

    以下几点对我很有用:

    systemctl unmask docker.service
    systemctl unmask docker.socket
    systemctl start docker.service
    
    幕后发生了什么
    systemd还可以通过将单元链接到/dev/null,自动或手动将其标记为完全不可启动。这称为掩蔽装置,可通过mask命令实现

    sudo systemctl mask docker.service
    
    您可以使用以下方法检查屏蔽服务的列表:

    sudo systemctl list-unit-files
    

    要启用自动/手动启动服务,您需要使用以下方法解除其屏蔽:

    sudo sytemctl unmask docker.service
    
    现在,服务将如下图所示启用
    docker绑定到unix套接字时
    DOCKER_OPTS="-H tcp://0.0.0.0:2375"
    
    ls -l /var/run/docker.sock
    
    sudo chown *your-username* /var/run/docker.sock
    
    $ sudo groupadd docker
    
    $ sudo gpasswd -a ${USER} docker
    
    $ sudo service docker restart
    
    unset DOCKER_HOST
    unset DOCKER_TLS_VERIFY
    unset DOCKER_TLS_PATH
    docker ps
    
    # Create the docker group and add your user to the docker group
    groupadd docker
    usermod -aG docker $USER
    newgrp docker
    
    # Configure docker service to be exposed
    mkdir -p /etc/systemd/system/docker.service.d
    echo -e '[Service]\nExecStart=\nExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376' >> /etc/systemd/system/docker.service.d/override.conf
    
    # restart service
    systemctl daemon-reload
    service docker restart
    
    sudo mv /var/lib/dpkg/info/docker-ce* /tmp