我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。Docker-machine运行正常,可以通过Docker-machine ssh连接。

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
dev    *        virtualbox   Running   tcp://192.168.99.100:2376   

但是不能从docker-compose连接。

$ docker-compose up

无法在http+unix://var/run/ Docker连接到Docker守护进程。袜子——它在跑吗? 如果它位于非标准位置,则使用DOCKER_HOST环境变量指定URL。

我的Dockerfile和docker-compose。Yml在这里。

Dockerfile

FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376

docker-compose.yml

web:
  build: .

为什么不能连接?什么好主意吗?


当前回答

一个快速解决这个问题的方法

只需在docker命令之前添加sudo


sudo docker-compose up

其他回答

可能会有特权问题,等命令解决了再说吧。

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

感谢Max的解决方案:https://stackoverflow.com/posts/60282354/revisions

我的设置有两个情况下这个错误:

我在容器内运行集成测试后,根用户创建的__pycache__文件对docker(告诉你原始问题)和docker-compose(告诉你关于docker主机含糊不清)是不可访问的; microk8s阻塞了我的端口,直到我停止它。

Sudo systemctl start docker —启动Docker服务。

Sudo docker-compose在那之后。

我有Fedora 26,为了解决同样的问题,我最终进入了Fedora开发者页面上的Docker Compose,然后进入了Fedora开发者页面上的Docker,这对我很有帮助。

可能,社区认为docker服务应该从系统开始,一直在后台运行,但对我来说并不是那么明显,这就是为什么我能想到为什么没有这样一个流行的答案。

在Fedora开发者的页面上有如何启用Docker启动系统的说明:

Sudo systemctl启用docker

如果您使用的是Linux

试试sudo docker-compose up

我知道这很傻,但在我的情况下,我只是尝试了sudo,它就像一个魅力。

在您的情况下,只需尝试:$ sudo docker-compose up