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.
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:
Docker Quickstart Terminal
docker-machine restart default
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)
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 comeval "$(docker-machine env default)"