webentwicklung-frage-antwort-db.com.de

Andockfehler: Client und Server haben nicht dieselbe Version

Da ich Docker gerade auf 1.1.0 aktualisiert habe, bekomme ich:

Fehlerantwort vom Daemon: Client und Server haben nicht dieselbe Version (Client: 1.13, Server: 1.12)

Wissen Sie, wie Sie das beheben können?

Ich habe wieder auf 1.0.1 umgestellt und alles funktioniert wieder.

83
soenke

Es sieht so aus, als müssten Sie nach der Installation von boot2docker ein Upgrade von VM durchführen:

wenn Sie ein Upgrade von boot2docker 0.12 oder höher durchführen, können Sie Ihre vorhandene virtuelle Maschine (nach dem Upgrade mit dem Installationsprogramm) mit boot2docker stop && boot2docker download && boot2docker up aktualisieren - und Ihre vorhandenen Daten gehen dabei nicht verloren.

( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0 )

127
Abel Muiño

Dies kann passieren, wenn Sie Docker aktualisiert haben, der Dienst jedoch nicht neu gestartet wurde. Sie versuchen dann, mit dem aktualisierten Client eine Verbindung zum Docker-Dämon herzustellen, während der Dämon (der bereits vor dem Update ausgeführt wurde) noch die ältere Version ausführt.

Um dies zu beheben, starten Sie den Dienst neu:

sysV init:

service docker restart

systemd:

systemctl daemon-reload

systemctl restart docker

18
BakaKuna

Wenn Sie docker-machine zum Verwalten lokaler VirtualBox-basierter Maschinen verwenden, ist die Lösung so einfach wie für boot2docker:

docker-machine upgrade MACHINE_NAME

Es fordert docker-machine auf, den neuesten boot2docker.iso herunterzuladen und als neues Root-Dateisystem in der aktualisierten VM zu platzieren.

Übrigens hat die von VirtualBox unterstützte Docker-Maschine das Root-Dateisystem nur lesbar. Das bedeutet, dass keine manuelle Aktualisierung nach dem Neustart des Computers möglich ist. Das war eine Überraschung für mich.

13
Peter

Ich hatte die neueste Version von boot2docker, Docker und Virtual Box, erhielt aber immer noch diese Nachricht. Es scheint, dass brew upgrade boot2docker nicht die beste Idee ist. Bei der Ausführung von boot2docker upgrade wurde ich aufgefordert, eine Reihe von Umgebungsvariablen festzulegen, und dann funktionierte es für mich. 

Boot2docker hat mich gebeten, diese einzustellen (siehe letzte Zeilen):

$ 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 ist möglich, diese drei Zeilen auf einmal zu schneiden und in Ihr Terminal einzufügen.

Um zu überprüfen, ob sie korrekt sind:

$ env
12
Rimian

Ich habe versucht, einen Docker-Server mit einem neueren Client abzufragen:

  • Server-API-Version: 1.21
  • Client-API-Version 1.22

Die Lösung für mich war nur:

export DOCKER_API_VERSION=1.21

Referenz: https://docs.docker.com/engine/reference/commandline/cli/

10
Marcello Romani

Die richtige Antwort hier ist sehr alt (Docker hat boot2docker in Docker Machine umbenannt und weitere Funktionen hinzugefügt)}. 

Jedenfalls hatte ich das gleiche Problem und brauchte etwa 3 Tage, um das Problem zu beheben :( 

Hier ist die Lösung

1) Finde den Ort des boot2docker.iso

Sudo find ~/ -name 'boot2docker.iso'

2) Löschen Sie die boot2docker.iso-Datei, nachdem Sie eine Sicherungskopie davon erstellt haben

/Users/{user}/.docker/machine/cache/boot2docker.iso

3) Löschen Sie Ihr Docker-VM

docker-machine rm {default}

dies sollte auch dieses löschen:

/Users/{user}/.docker/machine/machines/default/boot2docker.iso

4) Neue Docker-VM erstellen

docker-machine create --driver virtualbox default

dadurch wird zuerst ein neuer boot2docker.iso heruntergeladen und anschließend zum Erstellen der VM verwendet.

Nun sollte dies behoben werden :)

ABER

Wenn Sie hier einen Fehler erhalten, wie:

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"

versuchen Sie, die boot2docker.iso-Datei manuell herunterzuladen, indem Sie auf https://api.github.com/repos/boot2docker/boot2docker/releases/latest klicken, dann auf html_url klicken und schließlich die Datei herunterladen.

sobald Sie die Datei erhalten haben, legen Sie sie manuell in /Users/{user}/.docker/machine/cache/ ab.

führen Sie diesen Befehl schließlich erneut aus docker-machine create --driver virtualbox default

3
Mahmoud Zalt

Das einzige, was für mich funktionierte, war, den Prozess zu beenden und mit "Sudo Service Docker Start" zu starten.

2
pawl

Das einzige, was für mich funktionierte, war, das boot2docker-Image von VirtualBox zu entfernen, den ~/.boot2docker-Ordner vollständig zu löschen und schließlich boot2docker init erneut auszuführen.

2
dkinzer

boot2docker löschen 

boot2docker init

arbeitete für mich Stoppen/starten Sie den Daemon natürlich vorher und danach.

1
apflieger

Das funktionierte für mich: Es fährt einfach die VM herunter, löscht und erstellt sie neu und startet sie wieder. Es führt Shellinit erneut aus, damit Ihre ENV-Variablen beim Wiederherstellen mit der richtigen IP-Adresse festgelegt werden.

$ boot2docker poweroff && \
    boot2docker delete && \
    boot2docker init && \
    boot2docker up
$ eval `boot2docker shellinit`
1
0xADADA

Ansible Antwort:

Wenn Sie mit Ansible und nicht mit boot2docker dorthin gekommen sind, ist hier die Lösung: Verwenden Sie das docker_api_version: auto-Argument

- name: Mongo data container
  docker:
    docker_api_version: auto
    name: mongo-primary-dc
    image: debian:wheezy
    state: present
    volumes:
    - /data

Ich denke, der Grund ist, dass das Docker-py-Modul, das Ansible verwendet, oft nicht dieselbe Version wie das apt-get-Repository von Ubuntu hat.

0
Nicolas Zozol

Meine Lösung bestand im Schließen> Ausschalten des Dockers VM in VirtualBox und anschließendem Starten von Kitematic. Das hat es für mich behoben.

0

Ich finde, dass die Version in brew im Vergleich zu der auf der Website von docker.io veraltet ist. Daher denke ich, der beste Weg ist, auf die Website zu gehen und die Installationsdatei herunterzuladen.

0
Tommy

Ich hatte die neueste Version von boot2docker (v1.7.1) und erhielt den Fehler des Client-Servers. Dann lief ich einfach boot2docker upgrade und es löste das Problem.

0
Samitha