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

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


当前回答

我在Ubuntu 20.0.4中解决了这个问题

sudo chmod 666 /var/run/docker.sock

然后

sudo service docker start && docker-compose up -d

Ref.

其他回答

对我来说,我开始升级Docker,中途取消了。我没有注意到Docker没有运行(如果是的话,在我的Macbook的顶部导航栏上有一个图标,通过剩余电池,时间等)。一旦我启动它,并完成升级,docker-compose up再次工作!

以下是对我有用的,我不确定是哪一部分起作用了:

julian:project$ sudo service docker status
julian:varys$ 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 Wed 2020-07-15 01:21:16 UTC; 24min ago
     Docs: https://docs.docker.com
 Main PID: 6762 (dockerd)
    Tasks: 25
   CGroup: /system.slice/docker.service
           └─6762 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

julian:project$ export DOCKER_HOST=unix:///run/containerd/containerd.sock

julian:project$ sudo groupadd docker
groupadd: group 'docker' already exists
julian:project$ sudo gpasswd -a $USER docker
Adding user ubuntu to group docker
julian:project$ newgrp docker

julian:project$ ls -ln /var/run/ | grep docker
drwx------  5   0   0  120 Jul 15 01:10 docker
-rw-r--r--  1   0   0    4 Jul 15 01:10 docker.pid
srw-rw----  1   0 999    0 Jul 15 01:10 docker.sock

julian:project$ sudo rm /var/run/docker.sock                                                                                                                                                                                            
julian:project$ sudo rm /var/run/docker.pid

julian:project$ sudo service docker restart  

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

如果你使用的是Linux系统,你可能没有安装docker-machine,因为它只在Windows和Mac电脑上默认安装。

如果是这样,你需要去https://docs.docker.com/machine/install-machine/找到如何在你的Linux版本上安装它的说明。

安装后,在尝试上面列出的任何操作之前,请重试运行docker-compose up。

希望这能帮助到一些人。这适用于我在Fedora 25中的devilbox安装。

我的解决方案是将图像标记改为小写字母。

更改docker-compose中的图像标记。yml文件中包含存储库IP和映像名称(小写字母)。

例如:image: 192.168.1.5/imagename:v1