我在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机器正在运行。但是您需要导出一些环境来连接到Docker机器。默认情况下,docker命令行客户端试图使用http+unix://var/run/docker与守护进程通信。Sock(如错误消息中所示)。

使用eval $(docker-machine env dev)导出正确的环境变量,然后再试一次。你也可以运行docker-machine env dev来查看它将导出的环境变量。注意,其中一个是DOCKER_HOST,正如错误消息建议您可能需要设置的那样。

其他回答

工作! ! 我尝试了下面的命令和它的工作

service docker restart
docker-compose -f docker_compose.yaml down
docker-compose -f docker_compose.yaml up

如果您使用的是Linux

试试sudo docker-compose up

Docker机器正在运行。但是您需要导出一些环境来连接到Docker机器。默认情况下,docker命令行客户端试图使用http+unix://var/run/docker与守护进程通信。Sock(如错误消息中所示)。

使用eval $(docker-machine env dev)导出正确的环境变量,然后再试一次。你也可以运行docker-machine env dev来查看它将导出的环境变量。注意,其中一个是DOCKER_HOST,正如错误消息建议您可能需要设置的那样。

$sudo docker-compose up

我确实按照上面回答的步骤将$USER添加到组docker中。我不想添加一个新的组docker,因为在我的docker安装中,一个名为docker的组自动创建。

Docker CE已安装并运行。创建docker组,但未向其中添加用户。运行Docker命令需要使用sudo。继续执行Linux postinstall以允许非特权用户运行Docker命令并执行其他可选配置步骤。

但是使用docker-compose up也不起作用。它给出了相同的先前错误。 所以在我的情况下(Ubuntu 18.10) sudo docker-compose up解决了这个问题。

ps: @Tiw谢谢你的建议。

如果你使用sudo启动docker,那么你应该用sudo运行docker-compose up 比如:sudo docker-compose up