web-dev-qa-db-ja.com

docker-compose upは「クライアントとサーバーに同じバージョンがありません(クライアント:1.14、サーバー:1.12)」エラーになりますが、クライアントとサーバーには同じバージョンがあります

docker version印刷:

Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a

docker-compose --version印刷:

docker-compose 1.2.0

Dockerをapt-get install docker.ioでインストールし、docker-composeで

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Ubuntu 14.04 x64を使用します。

39
Donovan

環境変数 COMPOSE_API_VERSION をチェックアウトします。

ERROR: client and server don't have same version (client : 1.19, server: 1.18)を取得していましたが、export COMPOSE_API_VERSION=1.18そして問題は解決しました!

48
hba

これは、docker-composeが使用するdocker APIバージョンが、サービスをリッスンするdockerデーモンのバージョンよりも高いという問題です。

最も簡単な修正方法は、古いバージョンのdocker-composeを使用することです。

これは私の例ですが、異なるバージョンの不一致があります:

$ docker-compose up

client and server don't have same version (client : 1.18, server: 1.17)

それを修正するには、次のコマンドを使用して下位バージョンのdocker-compose(最新の1.3バージョンではなく1.2バージョン)をインストールする必要がありました

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose``

chmod +x /usr/local/bin/docker-compose`

https://github.com/docker/compose/releases でdocker-composeの異なるバージョンを見つけることができます

サーバーのバージョンに基づいて、バージョンが異なる別のdocker-composeが動作するまで試す必要があります。

16
Srini Koganti

Dockerの新しいバージョンを使用する必要があると思います。おそらくクライアントバージョン1.14はComposeで内部的に使用されます。

Apt-getバージョンをアンインストールし、Docker Webサイトの指示に従ってDockerをインストールします。

 wget -qO- https://get.docker.com/ | sh
12
Adrian Mouat

docker-composeをインストールした場合、次の方法でdocker-composeバージョンをダウングレードできます。

pip install docker-compose

最初にアンインストールできます:

pip uninstall docker-compose

次に、実行できます:

pip install docker-compose==1.3.0

docker-compose upを実行しても、同様の情報が表示される場合は、アンインストールできます(pip uninstall docker-compose)、次のような下位バージョンのdocker-composeをインストールします。

pip install docker-compose==1.2.0

間違った情報が表示される場合は、ループに進むことができます。

ps:詳細バージョン番号は https://github.com/docker/compose/releases にあります

3
dongzhuoyao

私は多くの解決策を試しましたが、Sudo apt-get upgrade docker-engineを使用したときに、docker-ceという名前の異なるdockerをインストールしたというメッセージが表示されます。 Sudo apt-get upgrade docker-ceで修正した後。

3
Anton

Apt-getでインストールされたバージョンをアンインストールし、コマンドラインwgetを介してダウンロードページで最新バージョンから直接ダウンロードするように見えました。

2
Jason Graham

Dockerのアップグレード後にdockerサービスを再起動してみてください(Sudo service docker restart)。

よく似た問題があり、Dockerをアップグレードしましたが、サービスを再起動するまで同じエラーメッセージが表示され続けました。 ( https://serverfault.com/a/700707/2955 を参照してください。)

2
gonzalo-bulnes

Docker-compose 1.4ではクライアントAPIバージョンを設定できるため、クライアントをダウングレードしたりサーバーをアップグレードしたりする必要はありません。

特定のAPIバージョンを設定する必要もありません。環境変数COMPOSE_API_VERSION=autoクライアントバージョンを自動検出します。

2
L. G.

Macでも同じ問題が発生しました。数か月前に、 brew を使用してdocker、boot2docker、およびdocker-compose(以前のfig)をインストールしました。ドッカーでしばらく遊んだ後、何らかの理由でそのままにしておきました。新しい docker-toolbox および docker-machine が登場し、事前に構成されたdocker-fileを使用して "up"と言いたいと思いました。上記のエラーが表示されました。

私はネットで見つけたすべてのものを試しました-また、ダウングレードオプション(私にとっては適切ではないと感じました)。最終的に機能したのは、新しい docker-toolboxhomebrew cask 経由でインストールし、次のコマンドでdocker-vmをアップグレードするだけでした。

docker-machine upgrade docker-dev

ここで、「docker-dev」はVirtualboxのdocker-vm-Nameです(正しい名前を表示するには、起動します)。

Dockerが再び正常に動作し、docker versionコマンドは、通常のセットアップの出力をもたらします。

0
jonashackt