Dato che ho appena aggiornato Docker alla 1.1.0, ottengo:
Risposta di errore dal daemon: client e server non hanno la stessa versione (client: 1.13, server: 1.12)
Sai come aggiustarlo?
Sono tornato alla 1.0.1 e tutto funziona di nuovo.
Dato che ho appena aggiornato Docker alla 1.1.0, ottengo:
Risposta di errore dal daemon: client e server non hanno la stessa versione (client: 1.13, server: 1.12)
Sai come aggiustarlo?
Sono tornato alla 1.0.1 e tutto funziona di nuovo.
boot2docker
problema (per riferimento futuro).
Risposte:
Sembra che sia necessario aggiornare la VM dopo aver installato boot2docker:
se stai aggiornando da boot2docker 0.12 o successivo, puoi aggiornare la tua macchina virtuale esistente (dopo l'aggiornamento usando il programma di installazione) usando boot2docker stop && boot2docker download && boot2docker up - e non perderai i tuoi dati esistenti.
( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0 )
An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json?all=1: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
: /
boot2docker delete
Allora ho corso boot2docker init
e ha iniziato a funzionare.
Ciò può accadere se hai aggiornato Docker, ma il servizio non è stato riavviato. Si proverà quindi a connettersi al daemon Docker con il client aggiornato, mentre il daemon (che era già in esecuzione prima dell'aggiornamento) sta ancora eseguendo la versione precedente.
Per risolvere questo problema, riavvia il servizio:
sysV init:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
systemd
si consiglia di farlo systemctl daemon-reload
primasystemctl restart docker
Nel caso in cui utilizzi docker-machine
per gestire una macchina basata su VirtualBox locale, la soluzione è semplice come per boot2docker:
docker-machine upgrade MACHINE_NAME
Chiede docker-machine
di scaricare l'ultima boot2docker.iso
e posizionarla come nuovo filesystem di root nella VM aggiornata.
A proposito, la macchina docker supportata da VirtualBox ha il suo filesystem di root in sola lettura. Ciò significa che non è possibile che alcun aggiornamento manuale sopravviva al riavvio della macchina. È stata una sorpresa per me.
Avevo l'ultima versione di boot2docker, docker e virtual box ma ricevevo ancora questo messaggio. Sembra che correre brew upgrade boot2docker
non sia l'idea migliore. Durante l'esecuzione boot2docker upgrade
, mi è stato chiesto di impostare un gruppo di variabili di ambiente e poi ha funzionato per me.
Boot2docker mi ha chiesto di impostare questi (vedi le ultime righe):
$ 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
È possibile tagliare e incollare queste tre linee in una volta sola, nel tuo terminale.
Per verificare che siano corretti:
$ env
Stavo cercando di interrogare un server Docker con un client più recente:
La soluzione per me era semplicemente:
export DOCKER_API_VERSION=1.21
Riferimento: https://docs.docker.com/engine/reference/commandline/cli/
La risposta corretta qui è molto vecchia (Docker ha rinominato boot2docker in Docker Machine e ha aggiunto alcune funzionalità in più) .
Comunque ho affrontato lo stesso problema e mi ci sono voluti circa 3 giorni per risolverlo :(
Ecco la soluzione
1) trova la posizione del file boot2docker.iso
sudo find ~/ -name 'boot2docker.iso'
2) eliminare il boot2docker.iso
file, dopo averne eseguito un backup
/Users/{user}/.docker/machine/cache/boot2docker.iso
3) elimina il tuo file docker vm
docker-machine rm {default}
questo dovrebbe eliminare anche quello:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4) crea un nuovo docker vm
docker-machine create --driver virtualbox default
questo scaricherà boot2docker.iso
prima un nuovo e poi lo userà per creare la tua VM.
Ora questo dovrebbe risolverlo :)
Se ricevi un errore qui come:
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"
prova a scaricare il boot2docker.iso
file manualmente andando su https://api.github.com/repos/boot2docker/boot2docker/releases/latest quindi facendo clic su html_url
e infine scegliendo di scaricare il file.
una volta ottenuto il file, posizionalo manualmente in /Users/{user}/.docker/machine/cache/
finalmente riesegui questo comando docker-machine create --driver virtualbox default
Questo ha funzionato per me: spegne semplicemente il VM, lo elimina e lo ricrea e lo riavvia. Esegue nuovamente shellinit in modo che le tue variabili ENV vengano impostate con l'indirizzo IP corretto quando ritorna.
$ boot2docker poweroff && \
boot2docker delete && \
boot2docker init && \
boot2docker up
$ eval `boot2docker shellinit`
La mia soluzione era di fare un Chiudi> Spegni sulla VM docker in VirtualBox, quindi riavviare Kitematic. Questo ha risolto il problema per me.
Se sei arrivato da Ansible e non da boot2docker, ecco la soluzione: usa l' docker_api_version: auto
argomento
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
Immagino che il motivo sia che il modulo docker-py utilizzato da Ansible spesso non è della stessa versione del repository apt-get di Ubuntu.
boot2docker
. È anche questo il tuo caso?