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を使用します。
環境変数 COMPOSE_API_VERSION をチェックアウトします。
ERROR: client and server don't have same version (client : 1.19, server: 1.18)
を取得していましたが、export COMPOSE_API_VERSION=1.18
そして問題は解決しました!
これは、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が動作するまで試す必要があります。
Dockerの新しいバージョンを使用する必要があると思います。おそらくクライアントバージョン1.14はComposeで内部的に使用されます。
Apt-getバージョンをアンインストールし、Docker Webサイトの指示に従ってDockerをインストールします。
wget -qO- https://get.docker.com/ | sh
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 にあります
私は多くの解決策を試しましたが、Sudo apt-get upgrade docker-engine
を使用したときに、docker-ce
という名前の異なるdockerをインストールしたというメッセージが表示されます。 Sudo apt-get upgrade docker-ce
で修正した後。
Apt-getでインストールされたバージョンをアンインストールし、コマンドラインwgetを介してダウンロードページで最新バージョンから直接ダウンロードするように見えました。
Dockerのアップグレード後にdockerサービスを再起動してみてください(Sudo service docker restart
)。
よく似た問題があり、Dockerをアップグレードしましたが、サービスを再起動するまで同じエラーメッセージが表示され続けました。 ( https://serverfault.com/a/700707/2955 を参照してください。)
Docker-compose 1.4ではクライアントAPIバージョンを設定できるため、クライアントをダウングレードしたりサーバーをアップグレードしたりする必要はありません。
特定のAPIバージョンを設定する必要もありません。環境変数COMPOSE_API_VERSION=auto
クライアントバージョンを自動検出します。
Macでも同じ問題が発生しました。数か月前に、 brew を使用してdocker、boot2docker、およびdocker-compose(以前のfig)をインストールしました。ドッカーでしばらく遊んだ後、何らかの理由でそのままにしておきました。新しい docker-toolbox および docker-machine が登場し、事前に構成されたdocker-fileを使用して "up"と言いたいと思いました。上記のエラーが表示されました。
私はネットで見つけたすべてのものを試しました-また、ダウングレードオプション(私にとっては適切ではないと感じました)。最終的に機能したのは、新しい docker-toolbox を homebrew cask 経由でインストールし、次のコマンドでdocker-vmをアップグレードするだけでした。
docker-machine upgrade docker-dev
ここで、「docker-dev」はVirtualboxのdocker-vm-Nameです(正しい名前を表示するには、起動します)。
Dockerが再び正常に動作し、docker version
コマンドは、通常のセットアップの出力をもたらします。