我有一个要在Apache HTTP Docker容器上运行的React应用。
因此我创建了一个与sudo docker build
和sudo docker run <name>
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环境变量。
出什么问题了?
答案 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