Compose: [Mac] docker-compose não será executado devido ao erro "Não foi possível conectar ao daemon do Docker"

Criado em 13 out. 2015  ·  31Comentários  ·  Fonte: docker/compose

Estou muito confuso sobre como o docker-compose deve funcionar no meu Mac. Aqui estão as etapas que executei:

1) Docker Toolbox instalado (Docker versão 1.8.2)
2) Tentei executar docker-compose up mas obteve Illegal instruction: 4 erro conforme # 1885
3) Para corrigir o problema, instalei docker-compose com pip via sudo pip install -U docker-compose
4) Agora, quando executo docker-compose up , recebo Couldn't connect to Docker daemon - you might need to run boot2docker .

O que é muito confuso porque toda a documentação diz que boot2docker está obsoleto. E tentar instalar o boot2docker também não está funcionando para mim.

Não tenho certeza do que mais tentar. Atualmente tem docker-compose v1.4.2 instalado.

kinquestion

Comentários muito úteis

Recentemente, corrigimos essa mensagem de erro (a correção estará na próxima versão).

Deve dizer "você pode precisar executar docker-machine start default ".

Se você ainda não consegue se conectar e o docker-machine está em execução, você pode configurar o compose para usar a máquina com eval "$(docker-machine env default)"

Todos 31 comentários

Recentemente, corrigimos essa mensagem de erro (a correção estará na próxima versão).

Deve dizer "você pode precisar executar docker-machine start default ".

Se você ainda não consegue se conectar e o docker-machine está em execução, você pode configurar o compose para usar a máquina com eval "$(docker-machine env default)"

Ok, obrigado. Parece que meu problema é com o Docker VM. Ele está me dando todos os tipos de erros de TLS, mesmo ao executar comandos regulares do docker, como docker images .

Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

Vou conversar com a equipe do docker.

ATUALIZAR

Para quem também tiver esse problema. A solução para mim foi:

  • Execute o aplicativo Docker Quickstart Terminal
  • Execute docker-machine restart default
  • Execute eval $(docker-machine env default)

Aparentemente, você precisa executar eval $(docker-machine env default) toda vez que executar o terminal de início rápido.

Estou recebendo o mesmo erro, mas não quero usar a máquina padrão, mas sim outra máquina criada com o driver amazonec2 , é possível?

Sim. O Compose usará qualquer mecanismo definido na variável de ambiente DOCKER_HOST (que é definido por eval $(docker-machine env ....) .

ah obrigado, eu não sabia sobre DOCKER_HOST !!
Por que não adicionar um parâmetro de linha de comando que substitua esse valor ??

Gostaria apenas de acrescentar algo para qualquer pessoa que visite isso no futuro ... Continuo tendo esse problema toda vez que abro um novo shell, então adicionei eval $(docker-machine env default) ao meu ~/.bash_profile . Funciona muito bem. Claro, alguém aqui pode me dizer que esta é uma ideia muito ruim (TM): sorria:

Sim, funciona. Mas por que eval $ (padrão env docker-machine) de repente. estava funcionando direito antes

Sim, também não tenho certeza. Também estava trabalhando para mim antes.

eval $(docker-machine env default) funciona para mim! obrigado :)

Eval "$ (docker-machine env default)" funcionou, obrigado!

Ainda não estou totalmente satisfeito com a solução de adicionar eval $(docker-machine env default) a ~/.bash_profile (embora eu tenha proposto), pois isso adiciona cerca de 2s de atraso na abertura de uma nova janela de terminal. Alguém tem alguma ideia melhor?

@shankiesan alias eval_evil_docker="eval $(docker-machine env default)"

Hah sim, acho que funcionaria @michahell . Ainda tem que fazer algo antes de usar o docker. Não é o ideal, mas não é ruim!

@shankiesan A única outra opção que posso ver é exportar as variáveis ​​produzidas de docker-machine env default em .bash_profile. Sim, o IP poderia teoricamente mudar, mas na realidade isso é muito menos provável de ocorrer do que o atraso na abertura de um novo shell diariamente e se isso acontecer, você sempre pode atualizar :-)

Essa é uma boa ideia @lewistaylor . Eu tentei antes não funcionou, mas desta vez deu, então deve ter sido um erro do operador. Boa, essa é uma ótima sugestão: +1:

@shankiesan @lewistaylor uau, não consigo entender, não fui eu que

este problema ainda persiste, a única solução é usar

$ eval $(docker-machine env the-vm-name) // which doesnt give any output & without it we get the error
$ docker-compose up

Às vezes eu tenho o mesmo problema, MAS ele surge SOMENTE quando eu fecho meu macbook. Se eu reiniciar o sistema, ele pode começar bem, talvez não. Se não reinicio novamente e geralmente funciona. Meu palpite é que provavelmente o problema no IP / portas, só acho, porque se eu reiniciar meu laptop com programas não fechados (como o PHPStorm) geralmente não funcionará. Se eu fechar todos os programas em execução e reiniciar, ele está funcionando.

+1

@lewistaylor @shankiesan @michahell Como você exporta as variáveis ​​de docker-machine env default em .bash_profile? Não sou muito bom com o bash, portanto, gostaria de receber ajuda na implementação dessa correção.

Solte docker-machine / dinghy / boot2docker e use docker para mac, está definido como
torne-se o tempo de execução oficial
Em 3 de junho de 2016 às 08:03, "nwshane" [email protected] escreveu:

@lewistaylor https://github.com/lewistaylor @shankiesan
https://github.com/shankiesan @michahell https://github.com/michahell
Como você exporta as variáveis ​​do padrão env docker-machine em
.bash_profile? Não sou muito bom com o bash, então gostaria de ajudar
implementar esta correção.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/docker/compose/issues/2180#issuecomment -223505966,
ou silenciar o tópico
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv
.

@nwshane Basta editar .bash_profile em seu editor de texto favorito. Por exemplo:

nano ~/.bash_profile e adicione as linhas que você obteve de docker-machine env default . Então você tem que source aquele arquivo - você pode fazer isso abrindo e fechando sua sessão de terminal, ou melhor, source ~/.bash_profile

Isso deve resolver.

@shankiesan Ótimo, obrigado! Isso funcionou. Eu estava me confundindo pensando que tinha que executar docker-machine env default e obter as variáveis ​​de lá - mas é claro que é isso que eval "$(docker-machine env default)" faz.

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
COMANDO DE IMAGEM DE ID DE CONTAINER CRIADO NOMES DE PORTOS DE STATUS
443c7386f4ef wordpress "/entrypoint.sh apach" 7 minutos atrás Up 7 minutos 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" 14 minutos atrás Up 14 minutos 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
ERRO: Não foi possível conectar ao Docker daemon - talvez você precise executar docker-machine start default .`

$ wordpress-compose docker-compose --version
docker-compose versão 1.8.0-rc1, compilação 9bf6bc6

$ wordpress-compose docker --version
Docker versão 1.12.0-rc2, build 906eacd, experimental

Aqui estão minhas informações, tudo funciona bem se eu usar docker run .......mysql..... e docker run ....link....wordpress , e posso acessar o blog no navegador. Quando eu quero tentar docker-compose , não funciona. Eu apaguei a máquina padrão, agora o wordpress está em uso.

Pode me ajudar a descobrir o que está errado?

Estou tendo o mesmo problema
mas eu não estou usando docker-machine, apenas docker-compose
qualquer ideia ??

eval "$(docker-machine env default)" resolve o problema

Tive o mesmo problema com um serviço específico no docker-compose.

Era um problema de permissão ... os arquivos a serem carregados para o docker não eram de propriedade do usuário atual.

O mesmo que @Rots aqui = /

cole o comando:
eval "$ (docker-machine env default)"
no seu terminal mac

"Error checking TLS connection: machine does not exist"
Agora estou tendo esse problema sempre que tento usar o env padrão do docker-machine, tentei carregar do bash_profile também, preciso de ajuda!

Erro SSL: EOF ocorreu em violação do protocolo (_ssl.c: 777)

Esta página foi útil?
0 / 5 - 0 avaliações