¿Cómo ejecutar las últimas versiones de desarrollo de Docker y Docker-Compose?

¿Cómo ejecutar las últimas versiones de desarrollo de Docker y Docker-Compose?

Estoy tratando de descubrir cómo ejecutar compilaciones de desarrollo de Docker y Docker-Compose juntas en Ubuntu 14.10 para, con suerte, solucionar un error:https://github.com/docker/compose/pull/1349

Última versión de desarrollo de Docker

docker -v
# Docker version 1.7.0-dev, build 6a7a757

# docker-compose -v
docker-compose version: 1.3.0rc3
CPython version: 2.7.8
OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014

Pero a Docker no le gusta la versión del servidor.

# which docker 
/usr/bin/docker
# sudo /usr/bin/docker -d & 
WARN[0000] Your kernel does not support swap memory limit. 
INFO[0000] Loading containers: start.                   
.......................................................................INFO[0000] No non-localhost DNS nameservers are left in resolv.conf. Using default external servers : [nameserver 8.8.8.8 nameserver 8.8.4.4] 
INFO[0000] No non-localhost DNS nameservers are left in resolv.conf. Using default external servers : [nameserver 8.8.8.8 nameserver 8.8.4.4] 
WARN[0000] Failed to allocate and map port 8080: Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use 

INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=6a7a757 execdriver=native-0.2 graphdriver=aufs version=1.7.0-dev

# ps auxf | grep docker
root     24854  0.0  0.0  73360  3800 pts/14   S    09:59   0:00          |       \_ sudo /usr/bin/docker -d
root     24866  0.0  0.1 439152 19556 pts/14   Sl   09:59   0:00          |       |   \_ /usr/bin/docker -d
root     24982  0.0  0.0 109264 14584 pts/14   Sl   09:59   0:00          |       |       \_ docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32768 -container-ip 172.17.0.2 -container-port 29015
root     25102  0.0  0.1 109264 16552 pts/14   Sl   09:59   0:00          |       |       \_ docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32769 -container-ip 172.17.0.2 -container-port 28015
root     25131  0.0  0.0 109264 14516 pts/14   Sl   09:59   0:00          |       |       \_ docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32770 -container-ip 172.17.0.2 -container-port 8080

# docker ps
Error response from daemon: client and server don't have same version (client : 1.20, server: 1.15)

Y la versión candidata de desarrollo actual, docker-compose, espera la versión 1.18 del servidor.

# which docker-compose 
/usr/local/bin/docker-compose
# docker-compose ps
client and server don't have same version (client : 1.18, server: 1.15)

Incluso después de detener el demonio, sigo recibiendo el mismo mensaje de error.

# sudo killall docker
INFO[0288] Processing signal 'terminated' 
# docker ps
Error response from daemon: client and server don't have same version (client : 1.20, server: 1.15)

Sé que puedo degradar el cliente Docker para que coincida con la versión 1.18 que requiere Docker-Compose, pero todavía no entiendo por qué la versión del servidor informa como 1.15 cuando el mismo cliente binario parece ser 1.20.

Pregunta complementaria: ¿cómo es que el cliente de Docker sigue recibiendo un mensaje de versión incorrecta del servidor cuando se detiene el demonio de Docker?

Respuesta1

Intente reiniciar el servicio Docker después de actualizar Docker ( sudo service docker restart). Esa puede ser la causa de:

Todavía tienes una versión antigua de Docker ejecutándose.

Tuve un problema muy similar, actualicé Docker y seguí apareciendo el mismo mensaje de error hasta que reinicié el servicio.

Respuesta2

El problema en este caso fue que la variable de entorno $DOCKER_HOSTapuntaba a otro sistema que estaba usando una versión diferente, por lo que no aparecían procesos en psAPI incompatibles.

Eliminar la variable unset DOCKER_HOSTresolvió el problema.

información relacionada