Na minha máquina ubuntu GNU/Linux eu tento construir as imagens do meu projeto
docker-compose build --no-cache --force-rm
E recebo o seguinte erro:
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.
Mas quando tento com o sudo, posso construí-los:
sudo docker-compose build --no-cache --force-rm
Mas acho um tanto misterioso porque posso iniciá-los sem a necessidade de sudo:
docker-compose up
A causa do problema é que você tem um ponto de montagem de volume com
root:root
proprietário e grupo e causou esse comportamento.A solução para esse problema é criar um arquivo nomeado
.dockerignore
e colocar todas as pastas montadas como volumes.Por exemplo, se você tiver o seguinte
docker-compose.yml
Então você deve criar o seguinte
.dockerignore
:Como você pode ver, todos os volumes estão na
./docker-volumes
pasta.Além disso, você pode encontrar soluções em: https://stackoverflow.com/questions/29101043/cant-connect-to-docker-from-docker-compose#29111083
Um dos motivos é que qualquer arquivo usado para criar a imagem do docker não pertence ao usuário atual. Podemos mudar isso usando este comando: