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


84

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

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

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

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


을 사용하여 동일한 문제가 boot2docker있습니다. 그것도 당신의 경우입니까?
sigmus

2
예, boot2docker도 사용하고 있습니다. 도커를 제거하고 다시 설치하면 ( '재설치'가 아님) 다시 작동합니다. 양조 제거 고정 표시기 && 양조 고정 표시기 설치
soenke

4
제목 / 질문을 수정하여 문제가 있음을 명확히해야 할 수도 있습니다 boot2docker(향후 참조 용).
sigmus

뻔뻔한 플러그 : 친구와 저는 단기적으로이를 돕기 위해 Docker Version Manager 라는 도구를 만들었습니다 .
Kyle Kelley

답변:


127

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

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

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


3
또한 양조 제거 고정 표시기 && 양조 고정 표시기가 작업 한 설치
soenke

5
더 이상 docker 명령 줄 도구의 brew 버전을 사용할 필요가 없습니다. Boot2Docker는 올바른 버전을 제공합니다.
Abel Muiño

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/ :
아인 Tohvri

1
이 인증서 문제도 발생했습니다. 내가 실행 boot2docker delete한 후, boot2docker init그것은 일하기 시작했다.
Dean Wampler

1
친구와 함께 Docker Version Manager 라는 도구 를 만들어 단기간에이 문제를 해결했습니다.
Kyle Kelley

19

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

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

sysV 초기화 :

service docker restart

systemd :

systemctl daemon-reload

systemctl restart docker


1
들어 systemd이 수행하는 것이 좋습니다 systemctl daemon-reloadsystemctl restart docker
baldrs

가장 간단한 대답은 최선의 대답은 :)처럼 보인다
Dariss

13

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

docker-machine upgrade MACHINE_NAME

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

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


12

최신 버전의 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

11

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

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

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

export DOCKER_API_VERSION=1.21

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


1
감사! 이것은 내 문제를 해결했습니다
MajiK

1
docker 프로토콜이 버전 화되고 이전 버전과 호환된다는 사실은 문서화가 잘되어 있지 않거나, 다양한 시나리오에서 docker를 업그레이드하기 위해 모든 종류의 길이에 이르는 답변의 양을 감안할 때 충분히 볼 수 없어야합니다.
Marcello Romani

3

여기서 정답은 매우 오래되었습니다 (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


2

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


2

나를 위해 일한 유일한 것은 VirtualBox에서 boot2docker 이미지를 제거한 다음 ~/.boot2docker폴더 를 완전히 삭제 하고 마지막으로 boot2docker init다시 실행하는 것입니다.


1

boot2docker 삭제

boot2docker 초기화

나를 위해 일했습니다. 물론 그 전후에 데몬을 중지 / 시작하십시오.


1

이것은 나를 위해 일했습니다 .VM을 종료하고 삭제 및 재생성하고 다시 시작합니다. shellinit를 다시 실행하여 ENV 변수가 백업 될 때 올바른 IP 주소로 설정됩니다.

$ boot2docker poweroff && \
    boot2docker delete && \
    boot2docker init && \
    boot2docker up
$ eval `boot2docker shellinit`

0

최신 버전의 boot2docker (v1.7.1)가 있고 클라이언트 서버 불일치 오류가 발생했습니다. 그런 다음 방금 달렸고 boot2docker upgrade문제가 해결되었습니다.


0

내 솔루션은 VirtualBox의 docker VM에서 Close> Power Off를 수행 한 다음 Kitematic을 다시 시작하는 것이 었습니다. 이것은 나를 위해 그것을 고쳤습니다.


0

brew의 버전이 docker.io 웹 사이트의 버전에 비해 구식이라는 것을 알았습니다. 따라서 가장 좋은 방법은 웹 사이트에서 설치 파일을 다운로드하는 것입니다.


0

Ansible 답변 :

boot2docker가 아니라 Ansible에 의해 여기에 온 경우 해결책은 다음과 같습니다. docker_api_version: auto인수 사용

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

그 이유는 Ansible에서 사용하는 docker-py 모듈이 Ubuntu apt-get 저장소와 동일한 버전이 아닌 경우가 많기 때문이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.