我在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: .

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


当前回答

作为根用户运行。Sudo docker-compose up -build

其他回答

Docker Compose需要特权访问,请确保在运行Docker - Compose命令之前提供特权访问。

你可能需要杀死当前的Docker进程并重新启动Docker Desktop,然后它才最有可能工作。

P.S.我在MacOS上,在重新启动并提供对Docker Desktop(4.10.1版本)应用程序的根访问后,得到与上面相同的错误,我能够成功地运行Docker compose命令,如下所示。

Docker-compose up -d——build

尝试先运行dockerd或sudo dockerdif来启动daemon。如果你用sudo启动dockerd,你可能也想用sudo运行docker-compose up。否则也没关系。

工作解决方案https://github.com/docker/compose/issues/4181

如果你正在使用docker-machine,那么你必须使用env变量激活环境。 如果你没有使用docker-machine,那么使用sudo运行你的命令

sudo dockerd在我的情况下启动了docker服务,我在windows中使用wsl2。

我已经通过以下步骤解决了这个问题

$ sudo service docker status
$ sudo service docker start
$ sudo docker-compose up

现在docker-compose up正在工作