[docker] Docker 오류 : 클라이언트와 서버의 버전이 동일하지 않습니다.

Docker를 1.1.0으로 업데이트했기 때문에 다음을 얻습니다.

데몬의 오류 응답 : 클라이언트와 서버의 버전이 동일하지 않습니다 (클라이언트 : 1.13, 서버 : 1.12).

이 문제를 해결하는 방법을 알고 있습니까?

1.0.1로 다시 전환했고 모든 것이 다시 작동합니다.



답변

boot2docker를 설치 한 후 VM을 업그레이드해야하는 것 같습니다.

boot2docker 0.12 이상에서 업그레이드하는 경우 boot2docker stop && boot2docker download && boot2docker up을 사용하여 기존 가상 머신을 업데이트 할 수 있습니다 (설치 프로그램을 사용하여 업그레이드 한 후). 그러면 기존 데이터가 손실되지 않습니다.

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


답변

Docker를 업데이트했지만 서비스가 다시 시작되지 않은 경우 발생할 수 있습니다. 그런 다음 업데이트 된 클라이언트를 사용하여 Docker 데몬에 연결을 시도하고 데몬 (업데이트 전에 이미 실행 중이 었음)이 여전히 이전 버전을 실행하고 있습니다.

이 문제를 해결하려면 서비스를 다시 시작하십시오.

sysV 초기화 :

service docker restart

systemd :

systemctl daemon-reload

systemctl restart docker


답변

docker-machine로컬 VirtualBox 기반 머신을 관리하는 데 사용 하는 경우 솔루션은 boot2docker만큼 간단합니다.

docker-machine upgrade MACHINE_NAME

docker-machine최신 버전을 다운로드 boot2docker.iso하여 업그레이드 된 VM에 새 루트 파일 시스템으로 배치 하도록 요청 합니다 .

그건 그렇고, VirtualBox 지원 도커 머신은 루트 파일 시스템을 읽기 전용으로 가지고 있습니다. 즉, 시스템 재부팅 후에도 수동 업데이트가 가능하지 않습니다. 저에게는 놀라운 일이었습니다.


답변

최신 버전의 boot2docker, docker 및 virtual box가 있었지만 여전히이 메시지를 받았습니다. 실행중인 것 같습니다brew upgrade boot2docker 것이 최선의 생각이 아닌 . 를 실행할 때 boot2docker upgrade여러 환경 변수를 설정하라는 요청을 받았으며 저에게 효과적이었습니다.

Boot2docker는 다음과 같이 설정하도록 요청했습니다 (마지막 줄 참조).

$ 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

이 세 줄을 한 번에 잘라내어 터미널에 붙여 넣을 수 있습니다.

올바른지 확인하려면 :

$ env


답변

최신 클라이언트로 Docker 서버를 쿼리하려고했습니다.

  • 서버 API 버전 : 1.21
  • 클라이언트 API 버전 1.22

저에게 해결책은 다음과 같습니다.

export DOCKER_API_VERSION=1.21

참조 :
https://docs.docker.com/engine/reference/commandline/cli/


답변

여기서 정답은 매우 오래되었습니다 (Docker는 boot2docker의 이름을 Docker Machine으로 바꾸고 더 많은 기능을 추가했습니다) .

어쨌든 나는 같은 문제에 직면했고 고치는 데 약 3 일이 걸렸습니다.

해결책은 다음과 같습니다.

1) 위치 찾기 boot2docker.iso

sudo find ~/ -name 'boot2docker.iso'

2) 삭제 boot2docker.iso 백업 후 파일

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

3) Docker VM 삭제

docker-machine rm {default}

이것도 삭제됩니다.

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

4) 새 Docker VM 만들기

docker-machine create --driver virtualbox default

이것은 새로운 것을 다운로드합니다 boot2docker.iso 먼저 다음 VM을 만드는 데 사용합니다.

이제이 문제를 해결해야합니다. 🙂

그러나

여기에 다음과 같은 오류가 발생하면

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"

https://api.github.com/repos/boot2docker/boot2docker/releases/latestboot2docker.iso이동하여 수동으로 파일 을 다운로드 한 다음html_url 하고 마지막으로 파일 다운로드를 선택 다운로드하십시오.

일단 파일을 가져 와서 수동으로 /Users/{user}/.docker/machine/cache/

마지막으로이 명령을 다시 실행하십시오. docker-machine create --driver virtualbox default


답변

나를 위해 일한 유일한 것은 프로세스를 죽이고 “sudo service docker start”로 시작하는 것입니다.