Instalei o docker-machine 0.1.0 e o docker-compose 1.1.0 no Mac OS 10.8.5.
O Docker-machine está funcionando normalmente e pode se conectar pelo docker-machine ssh.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
No entanto, não é possível conectar-se do docker-compondo.
$ docker-compose up
Não foi possível conectar-se ao daemon do Docker em http + unix: //var/run/docker.sock - está em execução?
Se estiver em um local não padrão, especifique o URL com a variável de ambiente DOCKER_HOST.
Meu Dockerfile e docker-compose.yml estão aqui.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
docker-compose.yml
web:
build: .
Por que não consigo conectar? Alguma ideia?
docker
docker-compose
DIGITALSQUAD
fonte
fonte
docker-machine
executado como root? Eu vim aqui com o mesmo problema no Ubuntu e foram as permissões no soquete -sudo
fizeram o truque.sudo service docker restart
ousudo service docker start
eu resolvi isso com isso.Respostas:
A máquina do Docker está em execução. Mas você precisa exportar algum ambiente para se conectar à máquina Docker. Por padrão, o
docker
cliente CLI está tentando se comunicar com o daemon usandohttp+unix://var/run/docker.sock
(como mostrado na mensagem de erro).Exporte as variáveis de ambiente corretas usando
eval $(docker-machine env dev)
e tente novamente. Você também pode simplesmente executardocker-machine env dev
para ver as variáveis de ambiente que serão exportadas. Observe que um deles éDOCKER_HOST
, assim como a mensagem de erro sugere que você pode precisar definir.fonte
eval "$(docker-machine env default)"
) na sua lixeira / pós-atividade para garantir que esteja sempre atualizado.$ eval $(docker-machine env dev) Command 'docker-machine' not found, but can be installed with: sudo snap install docker
Solução simples para mim:
sudo docker-compose up
ATUALIZAÇÃO 14/03/2016: Em algum momento do processo de instalação do docker (ou docker-compose?), Há uma sugestão e um exemplo para adicionar seu nome de usuário ao grupo "docker". Isso permite evitar a necessidade de "sudo" antes de todos os comandos do docker, da seguinte maneira:
Observe atentamente a saída dos comandos de instalação (docker e a segunda instalação para docker-compose) e você encontrará a etapa necessária. Também está documentado aqui: https://subosito.com/posts/docker-tips/
UPDATE 2017-3-9
As instruções de instalação do Docker foram atualizadas aqui.
Etapas de pós-instalação para Linux
Esta seção contém procedimentos opcionais para configurar hosts Linux para funcionar melhor com o Docker.
Gerenciar o Docker como um usuário não raiz
O daemon do docker se liga a um soquete Unix em vez de uma porta TCP. Por padrão, o soquete Unix pertence à raiz do usuário e outros usuários podem acessá-lo apenas usando o sudo. O daemon do docker sempre é executado como usuário root.
Se você não quiser usar o sudo ao usar o comando docker, crie um grupo Unix chamado docker e adicione usuários a ele. Quando o daemon do docker é iniciado, torna a propriedade do soquete Unix lida / gravável pelo grupo do docker.
Para criar o grupo de janelas de encaixe e adicionar seu usuário:
Este comando baixa uma imagem de teste e a executa em um contêiner. Quando o contêiner é executado, ele imprime uma mensagem informativa e sai.
fonte
newgrp docker
sudo docker-compose up
". Quando tento isso, recebo:sudo: docker-compose: command not found
Se você iniciou o docker usando
sudo
, execute o docker-compose comsudo
Like:sudo docker-compose up
fonte
sudo docker-compose build
vez dedocker-compose build
.Por padrão, o daemon do docker sempre é executado como usuário raiz; portanto, você precisa anexar
sudo
seus comandos do Docker.Se você não quiser usar o sudo ao usar o comando docker, crie um grupo Unix chamado docker e adicione usuários a ele. Quando o daemon do docker é iniciado, torna a propriedade do soquete Unix lida / gravável pelo grupo do docker.
Para criar o grupo de janelas de encaixe e adicionar seu usuário:
Crie o grupo de janela de encaixe.
$ sudo groupadd docker
Adicione seu usuário ao grupo de janelas de encaixe.
$ sudo usermod -aG docker $USER
Efetue logout e logon novamente, para que sua participação no grupo seja reavaliada.
Verifique se você pode encaixar comandos do docker sem o sudo.
$ docker run hello-world
Este comando baixa uma imagem de teste e a executa em um contêiner. Quando o contêiner é executado, ele imprime uma mensagem informativa e sai.
As etapas descritas acima vêm da documentação oficial do Docker .
fonte
docker-compose
como o proprietário/usr/local/bin/docker-compose
e reinicie de serviçogroup
a associação pode ser atualizada comsu - $USER
para salvar o logoff on / offQuando você receber um erro :
A solução seria:
Primeiro, tente verificar se o serviço Docker está instalado e funcionando conforme o esperado na sua máquina remota / local:
sudo service docker status
se Não executar -
sudo service docker start
ousudo systemctl start docker
(depende de algumas versões do Linux, consulte as instruções de inicialização do Docker ).Segundo, inicie o docker como sudo
sudo docker-compose up
fonte
sudo systemctl start docker
- para iniciar o serviço Docker.sudo docker-compose up
depois disso.Eu tenho o Fedora 26 e, tentando resolver o mesmo problema, entrei no Docker Compose na página dos Desenvolvedores do Fedora e depois no Docker na página dos Desenvolvedores do Fedora , o que me ajudou.
Provavelmente, o serviço docker considerado pela comunidade para começar com o sistema e ser executado em segundo plano o tempo todo, mas para mim não era tão óbvio, e é por isso que consigo pensar por que não há uma resposta popular como esta.
Na página dos Desenvolvedores do Fedora, há instruções sobre como habilitar o Docker para iniciar com o sistema:
sudo systemctl enable docker
fonte
systemctl
porlaunchctl
se você estiver executando no mac.Se você estiver no Linux, talvez não tenha
docker-machine
instalado, pois ele é instalado apenas por padrão em computadores Windows e Mac.Nesse caso, você precisará acessar: https://docs.docker.com/machine/install-machine/ para encontrar instruções sobre como instalá-lo na sua versão do Linux.
Após a instalação, tente executar novamente
docker-compose up
antes de tentar qualquer coisa listada acima.Espero que isso ajude alguém. Isso funcionou para minha instalação do devilbox no Fedora 25.
fonte
Além de adicionar usuários ao grupo de janelas de encaixe, para evitar digitar
sudo
repetidamente, você também pode criar um alias paradocker
comandos como:fonte
se você estiver usando a docker-machine, precisará ativar o ambiente usando a variável env . caso você não esteja usando a docker-machine, execute seus comandos com o sudo
fonte
Alguém verificou o log?
No meu caso, a mensagem de erro em
/var/log/upstart/docker.log
era:Vale mencionar que eu tinha o vpn ativado, então:
$ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start
era a solução.fonte
A resposta de @srfrnk funciona para mim.
Na minha situação, eu tinha o próximo arquivo docker-compose.yml:
./docker-runtime
proprietário e grupo - éroot
quando o proprietário de outros arquivos - meu usuário. Quando eu tentei construirnginx
Eu adicionei
./docker-runtime
a.dockerignore
e está resolvido o meu problema.fonte
durante a execução
docker-compose pull
- eu estava ficando abaixo do erroestá funcionando?
solução -
Problema resolvido
fonte
Eu tive os mesmos sintomas.
Só dif que aconteceu apenas durante o
docker-compose build
docker ps
trabalho. Aconteceu com a versão2.x
, bem como3.x
. Reiniciadodocker
serviço, em seguida, a máquina ... Mesmo re-instaladodocker
+docker-compose
.Tentei de tudo, mas nada ajudou.
Finalmente, tentei criar o Dockerfile "manualmente" usando
docker build
.Aparentemente, tive um problema de permissão em um arquivo / pasta dentro do
Docker
contexto. Ele estava tentando ler o contexto ao iniciar a compilação e falhou com uma mensagem de erro adequada. No entanto, essa mensagem de erro não se propagou para adocker-compose
qual mostra apenasCouldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
Tendo constatado que a solução estava simplesmente adicionando o arquivo / pasta ao
.dockerignore
arquivo, pois não era necessária para a compilação. Outra solução poderia ter sido achown
ouchmod
-lo.De qualquer forma, talvez isso possa ajudar alguém a encontrar o mesmo problema que realmente não tem nada a ver
docker
e a mensagem de erro enganosa sendo exibida.fonte
chown
/chmod
consertei. Mensagem de erro terrível, mas eles estão trabalhando nisso. Veja github.com/docker/compose/issues/5318$ sudo docker-compor
Eu segui as etapas, como está na resposta acima, para adicionar $ USER à janela de encaixe de grupo. eu não queria adicionar uma nova janela de encaixe de grupo porque, na instalação, um grupo chamado janela de encaixe foi criado automaticamente.
O Docker CE está instalado e em execução. O grupo de janelas de encaixe é criado, mas nenhum usuário é adicionado a ele. Você precisa usar o sudo para executar os comandos do Docker. Continue na pós-instalação do Linux para permitir que usuários não privilegiados executem comandos do Docker e para outras etapas de configuração opcionais.
mas o uso do docker-compose up também não funcionou. Ele deu o mesmo erro anterior. Então, no meu caso (Ubuntu 18.10), o sudo docker-compose corrigiu o problema.
ps: @Tiw obrigado pelo conselho.
fonte
Eu sei que é bobagem, mas no meu caso eu apenas tentei
sudo
e funcionou como um encanto.no seu caso, tente:
$ sudo docker-compose up
fonte
tente isto:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
fonte
Resolvi o problema usando as seguintes etapas
agora docker-compor está funcionando
fonte
Para mim, comecei a atualizar o Docker e cancelei a meio caminho. Não notei que o Docker não estava funcionando (se estiver, existe um ícone na barra de navegação superior do meu Macbook, pela bateria restante, tempo, etc.). Depois que o iniciei e terminei a atualização,
docker-compose up
trabalhei novamente!fonte
Minha instalação tem dois casos para esse erro:
__pycache__
os arquivos criados pelo usuário root após a execução dos testes de integração dentro do contêiner ficam inacessíveis para o docker (informa o problema original) e o docker-compose (informa sobre o host do docker ambiguamente);microk8s
bloqueou minha porta até que eu parei.fonte
Tente executar
dockerd
ou,sudo dockerd
se necessário, primeiro para iniciar o daemon. Se você começardockerd
comsudo
você também pode querer correrdocker-compose up
comsudo
. caso contrário, tudo bem.Solução de trabalho em https://github.com/docker/compose/issues/4181
fonte
sair e entrar novamente me ajudou. No meu caso, foi uma instalação nova, criei um novo usuário, um novo grupo e o adicionei ao grupo de janelas de encaixe.
exit exit
então ssh no servidor novamente
fonte
O seguinte funcionou para mim, não tenho certeza de que parte fez o truque:
fonte