Docker VM no OS X instalado, mas os comandos parecem falhar [fechado]

7

Estou configurando o Docker na minha máquina Mac OS X local e estou com problemas para fazer isso funcionar. Eu segui as instruções de instalação no link . Tudo para instalar a ferramenta boot2docker parece funcionar sem problemas, mas depois que a VM está em execução, os comandos do Docker parecem não fazer nada. Por exemplo,

$ docker run ubuntu echo hello world
2014/06/17 08:20:54 Post http://localhost:4243/v1.12/containers/create: EOF

Todo comando termina em EOF e não parece fazer o que realmente deveria fazer. Aqui está outro:

$ docker ps
2014/06/17 08:25:10 Get http://localhost:4243/v1.12/containers/json: EOF

A VM criada pela ferramenta boot2docker também está sendo executada:

$ boot2docker status
[2014-06-17 08:26:24] boot2docker-vm is running.

Tenho a sensação de que algo não está configurado corretamente, mas segui as instruções linha a linha e não consigo ver onde algo está errado.

Qualquer ajuda é muito apreciada, obrigado!

Atualização 1

boot2docker versão: 1.0.0 ou 0.9.1 (não tenho certeza - não há sinalizador de versão AFAICT)

$ boot2docker ip
Usage /usr/local/bin/boot2docker {init|start|up|save|pause|stop|restart|status|info|delete|ssh|download}

Na instância do boot2docker:

$ sudo netstat -ntpl | grep docker
tcp        0      0 :::2375                 :::*                    LISTEN      743/docker

$ docker --version
Docker version 1.0.0, build 63fe64c

Atualização 2

Eu apenas re-instalei o boot2docker e agora estou definitivamente rodando 1.0.0.

$ boot2docker version
Client version: v1.0.0
Git commit: 2fef7b2

Eu também executei novamente o comando na documentação (o que entra em conflito com o que o comando me disse para definir o DOCKER_HOST na linha de comando, veja abaixo):

$ boot2docker up
2014/06/17 18:25:43 Waiting for VM to be started...
.............................
2014/06/17 18:26:41 Started.
2014/06/17 18:26:41 Auto detection of the VM's IP address.
2014/06/17 18:26:41 To connect the Docker client to the Docker daemon, please set:
2014/06/17 18:26:41     export DOCKER_HOST=tcp://:4243

Mas ainda estou vendo o problema original.

$ docker run ubuntu echo hello world
2014/06/17 18:28:29 Post http://127.0.0.1:4243/v1.12/containers/create: EOF

Eu então executo novamente o comando mencionado na documentação:

$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375

E agora veja isto:

$ docker run ubuntu echo hello world
2014/06/17 18:31:39 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

Devo mencionar que tentar executar docker -d no OS X dispara essa mensagem:

$ docker -d
2014/06/17 18:34:04 The Docker daemon is only supported on linux

O que não ajuda muito ...

    
por Dan Loewenherz 17.06.2014 / 15:26

2 respostas

12

Algumas coisas para verificar:

Versão atualizada do boot2docker

Verifique se o seu boot2docker está atualizado. Se você tivesse instalado através de um aplicativo como o Homebrew, você pode estar executando uma versão mais antiga. Verifique os lançamentos oficiais no link . Não deixe de executar boot2docker delete e, em seguida, boot2docker init após a atualização.

Cliente do Docker atualizado

É provavelmente uma boa ideia executar um cliente do Docker que corresponda à versão do servidor em execução no boot2docker. Se você estiver executando o Docker 1.0 no boot2docker, certifique-se de ter o cliente 1.0 no link .

Exportar porta correta

A porta nos seus comandos pode não estar correta. Você se lembrou de executar export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375 como a documentação diz? Porta 2375 é o novo padrão do Docker 1.0 (que está em ambos boot2docker 0.9.1 e 1.0.0).

Encaminhar porta correta

Depois de atualizar o DOCKER_HOST para o cliente, você pode ter um problema com o boot2docker 0.9.1 que usava a porta errada para as conexões TCP do Docker. Passos para verificar:

  1. Faça login na VM boot2docker usando boot2docker ssh (a senha é tcuser ).
  2. Em seguida, verifique a porta de escuta usando sudo netstat -ntpl | grep docker (provavelmente 2375 ).
  3. Agora abra o VirtualBox, acesse as configurações da VM boot2docker e clique no botão Port Forwarding .
  4. Ele deve corresponder à porta que está sendo ouvida no boot2docker (possivelmente 2375 ).
  5. Se a porta não corresponder, tente atualizar o encaminhamento de porta e tente o cliente novamente.
por 17.06.2014 / 22:35
5

Andy me pegou 99% do caminho até lá. Estou marcando sua resposta como a resposta aceita, mas vou escrever aqui o que resolveu meu problema. Depois de instalar a versão correta (1.0.0) do boot2docker, eu ainda estava recebendo resultados incorretos de qualquer comando do Docker.

Eu então abri o VirtualBox e li as portas, e eis que as portas estavam incorretas. No entanto, alterá-los para os valores corretos não resolveu o problema.

Eu decidi redefinir a VM, já que o antigo boot2docker provavelmente configurou incorretamente. Os seguintes comandos acabaram resolvendo o problema.

$ boot2docker delete
$ boot2docker init
$ export DOCKER_HOST=tcp://:2375
    
por 18.06.2014 / 04:15

Tags