在我的 ubuntu GNU/Linux 机器上,我尝试从我的项目中构建图像
docker-compose build --no-cache --force-rm
我收到以下错误:
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
但是当我尝试使用 sudo 时,我可以构建它们:
sudo docker-compose build --no-cache --force-rm
但我觉得它有点神秘,因为我可以在不需要 sudo 的情况下启动它们:
docker-compose up
问题的原因是您有一个带有
root:root
所有者和组的卷安装点并导致了这种行为。解决这个问题的方法是创建一个名为的文件
.dockerignore
,并将所有文件夹挂载为卷。例如,如果您有以下
docker-compose.yml
然后你应该创建以下内容
.dockerignore
:如您所见,所有卷都在
./docker-volumes
文件夹中。此外,您可以在以下位置找到解决方案:https ://stackoverflow.com/questions/29101043/cant-connect-to-docker-from-docker-compose#29111083
原因之一是用于构建 docker 映像的任何文件都不属于当前用户。我们可以使用这个命令来改变它: