library - Error de Docker: el cliente y el servidor no tienen la misma versión
download docker image (14)
Desde que acabo de actualizar Docker a 1.1.0 obtengo:
Respuesta de error de daemon: el cliente y el servidor no tienen la misma versión (cliente: 1.13, servidor: 1.12)
¿Sabes cómo arreglar ésto?
Cambié nuevamente a 1.0.1 y todo funciona nuevamente.
Respuesta Ansible:
Si llegaste allí por Ansible y no por boot2docker, esta es la solución: usa docker_api_version: auto
argumento docker_api_version: auto
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
Supongo que la razón es que el módulo docker-py utilizado por Ansible a menudo no está en la misma versión que el repositorio Ubuntu apt-get.
En caso de que use docker-machine
para administrar un equipo local basado en VirtualBox, la solución es tan simple como para boot2docker:
docker-machine upgrade MACHINE_NAME
Pide a docker-machine
que descargue el último boot2docker.iso
y lo coloque como un nuevo sistema de archivos raíz en la máquina virtual actualizada.
Por cierto, la máquina acopladora con respaldo VirtualBox tiene su sistema de archivos raíz de solo lectura. Eso significa que no es posible que ninguna actualización manual sobreviva al reinicio de la máquina. Eso fue una sorpresa para mí.
Encuentro que la versión en brew está desactualizada en comparación con la del sitio web docker.io. Por lo tanto, creo que la mejor manera es ir al sitio web y descargar el archivo de instalación.
Estaba intentando consultar un servidor Docker con un cliente más reciente:
- Versión de la API del servidor: 1.21
- Client API versión 1.22
La solución para mí fue simplemente:
export DOCKER_API_VERSION=1.21
Referencia: https://docs.docker.com/engine/reference/commandline/cli/
Esto funcionó para mí: simplemente apaga el vm, lo elimina y lo recrea y lo vuelve a iniciar. Vuelve a ejecutar shellinit para que sus variables ENV se configuren con la dirección IP correcta cuando vuelve a funcionar.
$ boot2docker poweroff && /
boot2docker delete && /
boot2docker init && /
boot2docker up
$ eval `boot2docker shellinit`
Esto puede suceder si ha actualizado Docker, pero el servicio no se ha reiniciado. A continuación, intentará conectarse al daemon de Docker con el cliente actualizado, mientras que el daemon (que ya se estaba ejecutando antes de la actualización) aún ejecuta la versión anterior.
Para solucionar esto, reinicie el servicio:
sysV init:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
La respuesta correcta aquí es muy antigua (Docker cambió el nombre de boot2docker a Docker Machine y le agregó más funcionalidades) .
De todos modos, me enfrenté al mismo problema y tardé 3 días en solucionarlo :(
Aquí está la solución
1) encuentre la ubicación de boot2docker.iso
sudo find ~/ -name ''boot2docker.iso''
2) eliminar el archivo boot2docker.iso
, después de tomar una copia de seguridad de él
/Users/{user}/.docker/machine/cache/boot2docker.iso
3) elimine su docker vm
docker-machine rm {default}
esto debería eliminar ese también:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4) crear nueva docker vm
docker-machine create --driver virtualbox default
esto descargará un nuevo boot2docker.iso
primero y luego lo usará para crear su vm.
Ahora esto debería arreglarlo :)
PERO
Si obtiene algún error aquí, 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"
intente descargar el archivo boot2docker.iso
manualmente yendo a https://api.github.com/repos/boot2docker/boot2docker/releases/latest luego haciendo clic en html_url
y finalmente eligiendo descargar el archivo.
una vez que obtenga el archivo vaya y colóquelo manualmente en /Users/{user}/.docker/machine/cache/
finalmente vuelva a ejecutar este comando docker-machine create --driver virtualbox default
Lo único que funcionó para mí fue eliminar la imagen boot2docker de VirtualBox, luego eliminar ~/.boot2docker
carpeta ~/.boot2docker
, y finalmente ejecutar boot2docker init
nuevamente.
Lo único que funcionó para mí fue matar el proceso y comenzarlo con "sudo service docker start".
Mi solución fue hacer un Cerrar> Apagar en la máquina acopladora VM en VirtualBox, y luego reiniciar Kitematic. Esto me lo arregló.
Parece que necesita actualizar la VM después de instalar boot2docker:
si está actualizando desde boot2docker 0.12 o posterior, puede actualizar su máquina virtual existente (después de actualizar utilizando el instalador) usando boot2docker stop && boot2docker descargar && boot2docker up - y no perderá sus datos existentes.
( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0 )
Tenía la última versión de boot2docker (v1.7.1) y obtuve el error de desajuste del servidor cliente. Luego boot2docker upgrade
y resolvió el problema.
Tenía la última versión de boot2docker, docker y caja virtual, pero aún recibía este mensaje. Parece que ejecutar brew upgrade boot2docker
no es la mejor idea. Al ejecutar la boot2docker upgrade
, me pidieron que configurara un conjunto de variables de entorno y luego funcionó para mí.
Boot2docker me pidió que establezca estos (ver las últimas líneas):
$ 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
Es posible cortar y pegar esas tres líneas de una vez, en su terminal.
Para verificar que sean correctos:
$ env
boot2docker delete
boot2docker init
trabajó para mi. detener / iniciar el deamon antes y después de eso, por supuesto.