Ich versuche herauszufinden, wie ich Entwicklungsbuilds von Docker und Docker-Compose zusammen auf Ubuntu 14.10 ausführen kann, um hoffentlich einen Fehler zu beheben:https://github.com/docker/compose/pull/1349
Neueste Docker-Entwicklungsversion
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
Aber Docker mag die Serverversion nicht
# 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)
Und der aktuelle Entwicklungs-Release-Kandidat Docker-Compose erwartet die Serverversion 1.18
# 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)
Auch nach dem Stoppen des Daemons erhalte ich immer noch die gleiche Fehlermeldung
# 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)
Ich weiß, dass ich den Docker-Client auf die Version 1.18 downgraden kann, die für Docker-Compose erforderlich ist, aber ich verstehe immer noch nicht, warum die Serverversion 1.15 gemeldet wird, wenn der gleiche Binärclient die Version 1.20 zu haben scheint.
Zusatzfrage: Wie kommt es, dass der Docker-Client weiterhin eine Meldung mit einer falschen Serverversion erhält, wenn der Docker-Daemon gestoppt ist?
Antwort1
Versuchen Sie, den Docker-Dienst nach dem Upgrade von Docker ( sudo service docker restart
) neu zu starten. Dies kann folgende Ursachen haben:
Sie haben noch eine alte Version von Docker ausgeführt.
Ich hatte ein sehr ähnliches Problem, habe Docker aktualisiert und erhielt immer wieder die gleiche Fehlermeldung, bis ich den Dienst neu gestartet habe.
Antwort2
Das Problem in diesem Fall bestand darin, dass die Umgebungsvariable $DOCKER_HOST
auf ein anderes System verwies, das eine andere Version verwendete, weshalb keine Prozesse angezeigt wurden ps
und es zu inkompatiblen APIs kam.
Durch das Entfernen der Variable unset DOCKER_HOST
wurde das Problem behoben.