Como acabei de atualizar o Docker para 1.1.0, recebo:
Resposta de erro do daemon: cliente e servidor não têm a mesma versão (cliente: 1.13, servidor: 1.12)
Você sabe como consertar isso?
Voltei para 1.0.1 e tudo funciona novamente.
Como acabei de atualizar o Docker para 1.1.0, recebo:
Resposta de erro do daemon: cliente e servidor não têm a mesma versão (cliente: 1.13, servidor: 1.12)
Você sabe como consertar isso?
Voltei para 1.0.1 e tudo funciona novamente.
boot2docker
problema (para referência futura).
Respostas:
Parece que você precisa atualizar a VM após instalar o boot2docker:
se estiver atualizando do boot2docker 0.12 ou posterior, você pode atualizar sua máquina virtual existente (após atualizar usando o instalador) usando boot2docker stop && boot2docker download && boot2docker up - e você não perderá seus dados existentes.
( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0 )
An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json?all=1: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
: /
boot2docker delete
, então boot2docker init
e começou a funcionar.
Isso pode acontecer se você atualizou o Docker, mas o serviço não foi reiniciado. Em seguida, você tentará se conectar ao daemon Docker com o cliente atualizado, enquanto o daemon (que já estava em execução antes da atualização) ainda está executando a versão mais antiga.
Para corrigir isso, reinicie o serviço:
sysV init:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
systemd
é recomendado fazer systemctl daemon-reload
antessystemctl restart docker
No caso de você usar docker-machine
para gerenciar máquinas locais baseadas em VirtualBox, a solução é tão simples quanto para boot2docker:
docker-machine upgrade MACHINE_NAME
Ele pede docker-machine
para fazer o download do último boot2docker.iso
e colocá-lo como um novo sistema de arquivos raiz na VM atualizada.
A propósito, a máquina docker apoiada pelo VirtualBox tem seu sistema de arquivos raiz somente leitura. Isso significa que não é possível que nenhuma atualização manual sobreviva à reinicialização da máquina. Isso foi uma surpresa para mim.
Eu tinha a versão mais recente do boot2docker, docker e caixa virtual, mas ainda estava recebendo esta mensagem. Parece que correr brew upgrade boot2docker
não é a melhor ideia. Ao correrboot2docker upgrade
, fui solicitado a definir várias variáveis de ambiente e funcionou para mim.
Boot2docker me pediu para definir estes (veja as últimas linhas):
$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem
To connect the Docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
É possível cortar e colar essas três linhas de uma vez, em seu terminal.
Para verificar se estão corretos:
$ env
Eu estava tentando consultar um servidor Docker com um cliente mais recente:
A solução para mim foi apenas:
export DOCKER_API_VERSION=1.21
Referência: https://docs.docker.com/engine/reference/commandline/cli/
A resposta correta aqui é muito antiga (o Docker renomeou boot2docker para Docker Machine e adicionou mais algumas funcionalidades a ele) .
Enfim, enfrentei o mesmo problema e levei cerca de 3 dias para consertar :(
Aqui está a solução
1) encontre a localização do boot2docker.iso
sudo find ~/ -name 'boot2docker.iso'
2) excluir o boot2docker.iso
arquivo, após fazer um backup dele
/Users/{user}/.docker/machine/cache/boot2docker.iso
3) exclua seu docker vm
docker-machine rm {default}
isso deve excluir aquele também:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4) criar um novo docker vm
docker-machine create --driver virtualbox default
isso fará o download de um novo boot2docker.iso
primeiro e, em seguida, o utilizará para criar sua VM.
Agora isso deve consertar :)
Se você receber algum erro aqui, como:
Running pre-create checks...
(mega-docker) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp: lookup api.github.com on 192.168.0.1:53: read udp 192.168.0.103:53947->192.168.0.1:53: i/o timeout"
tente baixar o boot2docker.iso
arquivo manualmente indo para https://api.github.com/repos/boot2docker/boot2docker/releases/latest , clicando em html_url
e finalmente escolhendo fazer o download do arquivo.
depois de obter o arquivo, coloque-o manualmente no /Users/{user}/.docker/machine/cache/
finalmente execute novamente este comando docker-machine create --driver virtualbox default
Isso funcionou para mim: ele apenas desliga a VM, exclui e recria e inicia novamente. Ele executa novamente o shellinit para que suas variáveis ENV sejam configuradas com o endereço IP correto quando ele voltar.
$ boot2docker poweroff && \
boot2docker delete && \
boot2docker init && \
boot2docker up
$ eval `boot2docker shellinit`
Minha solução foi fazer um Close> Power Off no docker VM no VirtualBox e, em seguida, reiniciar o Kitematic. Isso consertou para mim.
Se você veio por Ansible e não boot2docker, aqui está a solução: Use o docker_api_version: auto
argumento
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
Acho que a razão é que o módulo docker-py usado pelo Ansible geralmente não está na mesma versão do repositório apt-get do Ubuntu.
boot2docker
. Esse também é o seu caso?