我收到一条错误消息,指出我无法连接到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-Compose Version
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
非常感谢任何帮助。如果您可能需要更多信息,请与我们联系。
答案 0 :(得分:168)
调试15分钟后,我遇到了同样的错误。原来它需要的是sudo
:)
在这里查看[创建一个Docker组] https://docs.docker.com/engine/installation/linux/ubuntulinux/以删除sudo前缀。
答案 1 :(得分:13)
看起来您的问题是由旧的Docker错误创建的,其中Docker崩溃后未重新创建套接字文件。如果这是问题,那么重命名套接字文件应该允许重新创建它:
$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start
由于此错误已修复,因此大多数收到错误Couldn't connect to Docker daemon
的人可能会收到错误,因为他们不在docker
组中,并且没有权限读取该文件。使用sudo docker ...
运行会解决这个问题,但不是一个很好的解决方案。
Docker可以作为具有适当组权限的非root用户(没有sudo
)运行。 Linux post-install docs有详细信息。简短版本:
$ 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
组中的用户在没有docker
的情况下运行docker-compose
和sudo
命令。 Docker本身运行根,允许一些攻击,所以你仍然需要小心你运行的容器。有关详细信息,请参阅Docker Security Documentation。
答案 2 :(得分:9)
只需尝试使用sudo
。似乎是权限问题!
sudo docker-compose -f docker-compose-deps.yml up -d
对我有用。
答案 3 :(得分:8)
我有同样的问题。在记笔记并分析一些调试结果后,最后,我解决了可能是同一个错误。首先启动服务,
service docker start
请勿忘记将您的用户包含在泊坞小组中。
答案 4 :(得分:6)
解决此问题的一种方法是先通过运行以下命令将您的用户添加到docker
组中
sudo usermod -aG docker $USER
重要提示:请记住退出系统(不仅仅是终端),然后重新登录才能生效!
答案 5 :(得分:4)
当Dockerfile
目录中的文件无法被当前用户访问时,我收到此错误。因此,docker
无法将完整的上下文上传到守护程序,并使“无法连接到Docker守护程序的http + docker:// localunixsocket ”消息。
答案 6 :(得分:4)
我遇到了这个问题,不想使用sudo
弄乱事情。调查时,我尝试获取一些信息:
docker info
令人惊讶的是,我遇到了以下错误:
尝试在unix:///var/run/docker.sock上连接到Docker守护进程套接字时,获得权限被拒绝:获取Introduction to FXML:拨打unix /var/run/docker.sock:connect:权限拒绝
由于某种原因,我没有足够的特权,以下命令解决了我的问题:
sudo chown $USER /var/run/docker.sock
等等!
答案 7 :(得分:3)
从“ps aux | grep docker”的输出,看起来docker守护程序没有运行。尝试使用以下方法查看错误以及docker未启动的原因
$ sudo tail -f /var/log/upstart/docker.log
$ sudo docker -d -D
答案 8 :(得分:2)
在我的情况下,您的泊坞窗服务可能会停止
启动docker服务的命令:
$ sudo systemctl start docker
验证是否启动的命令:
$ sudo docker run hello-world
答案 9 :(得分:2)
答案 10 :(得分:1)
我使用Ubuntu 16.04,并在使用docker-compose时也发现了此问题。 我通过运行此命令对其进行了修复。
$ sudo systemctl start docker
$ sudo docker-compose build
答案 11 :(得分:1)
出现此错误的另一个原因:对我来说,这是docker-compose.yml
中错误的图像路径定义:
service:
image: ${CONTAINER_REGISTRY_BASE}/my-service
...
Lookis首先可以,但是我在环境上设置了CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
。显然,图像路径中的//
导致了此错误。
docker-compose: v.1.21.2
docker: 18.03.1-ce
答案 12 :(得分:0)
以sudo
的身份运行此命令可以为我解决问题
答案 13 :(得分:0)
在我的例子中,问题出在不合适的图片标签名称 -backend
- 以短划线开头:
失败:
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`.
工作:与my-backend
version: '2.4'
services:
my-service:
container_name: my.backend
image: imagename:my-backend
build:
context: .
答案 14 :(得分:0)
我认为这是由于访问权,您只需要写
sudo docker-compose-deps.yml up
答案 15 :(得分:0)
对我来说,解决方法是使用this article安装docker-compose
的较新版本(1.24)。
先前的版本(1.17)是从ubuntu
的默认存储库安装的,但是在安装了较新的版本后,我设法启动了该容器。希望对别人有帮助。
答案 16 :(得分:0)
删除默认计算机的可能性很小吗? 但是,首先检查所有文件是否都存在(OSX,在其他系统上类似)
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
另外,安装Docker App,因为它更容易维护容器:
brew cask reinstall docker
从发现程序启动Docker应用(等待直到服务完全启动)
然后,使用以下命令检查安装:
docker-machine ls
如果列表中没有计算机,请创建并启动:
docker-machine create default
docker-machine start default
在此之后,构建,撰写和所有其他命令应正常工作。
答案 17 :(得分:0)
在我的情况下,当我尝试docker-compose build
时,会遇到相同的错误
而我的解决方案只是添加sudo
sudo docker-compose build
答案 18 :(得分:0)
您应使用以下方式将用户添加到“ docker”组:
sudo usermod -aG docker your-user
答案 19 :(得分:0)
我找到了这个,似乎解决了我的问题。
GitHub Fix Docker Daemon Crash
我更改了docker-compose-deps.yml文件的内容,如链接中所示。然后我跑了docker-compose -f docker-compose-deps.yml up -d
。然后我把它改回来了,因为某种原因它起作用了。我没有必要继续我提供的链接中的步骤,但前两个步骤为我解决了问题。