wake-up-neo.com

Docker - Fehlerantwort vom Daemon: Client ist neuer als Server

Nach dem Erstellen eines neuen Computers mit Docker Machine wird die folgende Fehlermeldung angezeigt:

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)

Wie kann ich das beheben?

28
docker-machine upgrade <your-machine>

werde den Trick machen. Dies kann passieren - so wie bei mir -, auch wenn Sie keine RCs verwenden und Ihr Computer neu erstellt wurde. Dies liegt an einem ISO-Cache-Problem. Der Fehler ist in diesem Thread kommentiert.

Wenn der Docker-Client 1.9.x ist und auf dem Server Docker 1.8.x ausgeführt wird, wird die Fehlermeldung angezeigt.

40

Wenn jemand diesen Fehler erhält, aber nicht docker-machine Verwendet, gibt es eine andere Möglichkeit, das Problem zu beheben, indem eine ältere API-Version in einer Umgebungsvariablen auf der Clientseite angegeben wird:

export DOCKER_API_VERSION=<version>

beispielsweise:

export DOCKER_API_VERSION=1.19

und erneuten Versuch, den Befehl docker auszuführen.

Referenz .

31
techraf

Auf Ubuntu Distrib geschieht es nach einem passenden Update, wenn Docker als Dienst ausgeführt wird. Der Client wird aktualisiert, aber die alte Version des Servers wird noch ausgeführt.

In diesem Fall machen Sie einfach Folgendes:

Sudo service docker restart
11

Wenn Sie Ihren Docker-Client aktualisieren, können Sie keine alten Docker-VMs verwenden. Eigentlich können Sie ein Upgrade mit docker-machine upgrade vm-name Erzwingen, aber wenn Sie mit anderen Distributionen (außer boot2docker) als Docker-Host wie Coreos, Atomic, Rancheros arbeiten, kann dies fehlschlagen.

Ich verwende Carina, um mehr als eine Docker-Client-Version zu verwalten.

einfach mit $ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh (Linux- und Mac-Installation) installieren und dvm ls ausführen, um die installierten Versionen aufzulisten, dvm install 1.9.0, um die Versionen zu installieren, und dvm use 1.8.1, um die Client-Version zu ändern.

Sehr einfach und kraftvoll. =)

Achtung, zu Ihrer Sicherheit sollten Sie sich immer die aus dem Internet heruntergeladenen Skripte ansehen, bevor Sie sie ausführen.

Ich hoffe es hilft

3
wsilva

Anscheinend ist dieser Fehler auf docker-machine "einschlafen". Hier ist der Zauberbefehl, der es für mich löst:

$ docker-machine restart default

Oder ersetzen Sie default durch den Namen Ihres Computers. Das Ergebnis ist:

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

Wie vorgeschlagen, müssen Sie möglicherweise:

$ 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)

Und so führen Sie endlich diesen Befehl aus:

$ eval $(docker-machine env default)

Ab jetzt sollte es funktionieren.

1
Dmitri Zaitsev