Docker – Respuesta de error de daemon: el cliente es más nuevo que el server

Después de crear una máquina nueva con Docker Machine, recibo el siguiente error:

enter image description here

$ docker ps Error response from daemon: client is newer than server(client API version 1.21, server API version: 1.19) 

¿Cómo puedo arreglar esto?

 docker-machine upgrade <your-machine> 

hará el truco Esto puede ocurrir, como lo hizo por mí, incluso si no está utilizando RC y su máquina fue creada recientemente. Sería debido a un problema de caching ISO. El error se comenta en este hilo .

Si el cliente de Docker es 1.9.x y el server ejecuta Docker 1.8.x, se observa el post de error.

Si alguien obtiene este error, pero no está utilizando docker-machine , hay otra forma de resolver el problema especificando una versión de API anterior en una variable de entorno en el lado del cliente:

 export DOCKER_API_VERSION=<version> 

por ejemplo:

 export DOCKER_API_VERSION=1.19 

y reintentando el command del docker .

Referencia .

En ubibu distrib ocurre después de una actualización apt, si docker se ejecuta como un service. El cliente se actualiza pero la versión anterior del server aún se está ejecutando.

En este caso, solo haz un:

 sudo service docker restart 

Si actualiza su cliente de docker, no podrá usar máquinas virtuales viejas de docker-machine. De hecho, puede forzar una actualización con la actualización docker-machine upgrade vm-name , pero si está trabajando con otras distribuciones (excepto boot2docker) como host de docker como coreos, atomic, rancheros, puede fallar.

Estoy usando Carina para administrar más de una versión de cliente de Docker.

solo instale con $ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh $ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh (installation de Linux y mac) y ejecute dvm ls para enumerar las versiones instaladas, dvm install 1.9.0 para instalar las versiones y dvm use 1.8.1 para cambiar su versión de cliente.

Muy fácil y poderoso. =)

Atención, para su security, siempre eche un vistazo a las secuencias de commands descargadas de Internet antes de ejecutarlas.

Espero eso ayude

Aparentemente, este error se debe a que docker-machine "quedando dormida". Aquí está el command mágico que lo resuelve:

 $ docker-machine restart default 

O reemplace el default por el nombre de su máquina. El resultado es:

 $ docker-machine restart default Restarting "default"... Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command. 

Como se sugirió, es posible que deba:

 $ docker-machine env default export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://....." export DOCKER_CERT_PATH=".../.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default" # Run this command to configure your shell: # eval $(docker-machine env default) 

Y entonces finalmente ejecutas ese command:

 $ eval $(docker-machine env default) 

A partir de ahora debería funcionar.

Este comentario solo sirve para principiantes que tienen instalada una máquina pnetworkingeterminada.

 docker-machine upgrade default 

Tuve el mismo problema con 1.10.0-rc4, y resultó que boot2docker no se actualizó correctamente al instalar una nueva Docker Toolbox. Tuve que eliminar boot2docker manualmente:

 sudo rm -rf /usr/local/share/boot2docker 

También puede eliminar el rest de la caja de herramientas:

 sudo rm -rf /usr/local/bin/docker* sudo rm -rf /Applications/Docker 

Y finalmente instale Docker Toolbox de la versión deseada.

Consulte la secuencia de commands de desinstallation oficial en GitHub para OS X aquí.