web-dev-qa-db-ja.com

Dockerエラー:クライアントとサーバーに同じバージョンがありません

Dockerを1.1.0に更新したばかりなので、次のようになります。

デーモンからのエラー応答:クライアントとサーバーに同じバージョンがありません(クライアント:1.13、サーバー:1.12)

これを修正する方法を知っていますか?

1.0.1に切り替えて、すべてが再び機能するようになりました。

83
soenke

Boot2dockerのインストール後にVMをアップグレードする必要があるようです。

boot2docker 0.12以降からアップグレードする場合は、boot2docker stop && boot2docker download && boot2docker upを使用して既存の仮想マシンを更新できます(インストーラーを使用してアップグレードした後)。既存のデータは失われません。

https://github.com/boot2docker/osx-installer/releases/tag/v1.1.

127
Abel Muiño

これは、Dockerを更新したが、サービスが再起動されていない場合に発生する可能性があります。次に、更新されたクライアントを使用してDockerデーモンへの接続を試行しますが、デーモン(更新前に既に実行されていた)はまだ古いバージョンを実行しています。

これを修正するには、サービスを再起動します。

sysV init:

service docker restart

systemd:

systemctl daemon-reload

systemctl restart docker

18
BakaKuna

docker-machineを使用してローカルのVirtualBoxベースのマシンを管理する場合、ソリューションはboot2dockerと同じくらい簡単です。

docker-machine upgrade MACHINE_NAME

docker-machineに最新のboot2docker.isoをダウンロードして、アップグレードされたVMの新しいルートファイルシステムとして配置するよう要求します。

ちなみに、VirtualBox-backed docker machineのルートファイルシステムは読み取り専用です。つまり、手動更新はマシンの再起動後も存続できません。それは私にとって驚きでした。

13
Peter

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

これらの3行を一度に切り取り、端末に貼り付けることができます。

それらが正しいことを確認するには:

$ env
12
Rimian

最近のクライアントでDockerサーバーを照会しようとしていました。

  • サーバーAPIバージョン:1.21
  • クライアントAPIバージョン1.22

私にとっての解決策は次のとおりです。

export DOCKER_API_VERSION=1.21

リファレンス: https://docs.docker.com/engine/reference/commandline/cli/

10
Marcello Romani

ここでの正しい答えは非常に古いものです(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が作成されます。

今、これはそれを修正する必要があります:)

[〜#〜] but [〜#〜]

次のようなエラーが発生した場合:

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/latest に移動してboot2docker.isoファイルを手動でダウンロードしてから、html_urlをクリックして、最後にファイルのダウンロードを選択します。

ファイルを取得し、/Users/{user}/.docker/machine/cache/に手動で配置したら

最後にこのコマンドを再実行しますdocker-machine create --driver virtualbox default

3
Mahmoud Zalt

私のために働いた唯一のことは、プロセスを強制終了し、「Sudo service docker start」で開始することでした。

2
pawl

私のために働いた唯一のことは、VirtualBoxからboot2dockerイメージを削除してから~/.boot2dockerフォルダー、最後にboot2docker initもう一度。

2
dkinzer

boot2docker削除

boot2docker init

私のために働いた。もちろん、その前後にデーモンを停止/起動します。

1
apflieger

これは私のために働いた:VMをシャットダウンし、削除して再作成し、再び起動するだけです。 shellinitを再実行して、ENV変数が復旧したときに正しいIPアドレスで設定されるようにします。

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

答え:

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リポジトリと同じバージョンではないことが多いためだと思います。

0
Nicolas Zozol

私の解決策は、VirtualBoxでdocker VMで[閉じる]> [電源オフ]を実行し、Kitematicを再起動することでした。

0

Brewのバージョンは、docker.ioのWebサイトにあるバージョンと比較して時代遅れです。したがって、最善の方法はWebサイトにアクセスしてインストールファイルをダウンロードすることだと思います。

0
Tommy

Boot2docker(v1.7.1)の最新バージョンがあり、クライアントサーバーの不一致エラーが発生しました。それから私はただ走ったboot2docker upgradeそして、それは問題を解決しました。

0
Samitha