无法使用docker-compose在http + docker:// localhost上连接到Docker守护程序

时间:2018-06-22 01:26:20

标签: docker docker-compose dockerfile docker-container

我有一个要在Apache HTTP Docker容器上运行的React应用。

因此我创建了一个与sudo docker buildsudo docker run <name>

一起使用的 Dockerfile
FROM httpd:2.4
COPY ./dist/ /usr/local/apache2/htdocs/

我创建了一个 docker-compose.yml

version: '3'
services:
  frontend:
    build: .
    ports:
     - "8080:80"
    container_name: frontend

但是当我运行sudo docker-compose build时,出现此错误:

  

错误:无法通过http + docker:// localhost连接到Docker守护进程-   它在运行吗?

     

如果它位于非标准位置,请使用   DOCKER_HOST环境变量。

出什么问题了?

6 个答案:

答案 0 :(得分:29)

检查您的权限,以下命令解决了我的问题:

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

当您尝试以非超级用户身份启动Docker而无法访问自己的套接字时会发生这种情况。

答案 1 :(得分:4)

我的解决方案是仅重新启动包装盒(EC2 Amazon Linux2)。 用权限和组将我的尾巴追了30分钟,但是简单的重启就可以了。

答案 2 :(得分:4)

使用sudo运行:

sudo docker-compose up -d

答案 3 :(得分:1)

我有这个,发现我的用户不在docker组中,因此没有权限。

您可以通过运行groups进行检查。如果docker不在打印的列表中,则可能是您的问题。

您可以使用以下方法将用户添加到docker组:

sudo usermod -aG docker yourUserName

将用户添加到docker组后,我必须注销并再次登录以使更改生效。

答案 4 :(得分:0)

在运行任何Docker命令之前,您需要在主机上运行Docker守护程序:

sudo systemctl start docker

答案 5 :(得分:-1)

对我有帮助

export DOCKER_HOST=127.0.0.1:2375