web-dev-qa-db-ja.com

docker-composeを実行すると、クライアントバージョン1.38が新しすぎます。サポートされるAPIの最大バージョンは1.37インチです

私は次のようにdocker composeを使用しています:

version: '3.7'
services: 
  couchdb:
    image: "ibmcom/couchdb3:preview"
    container_name: couch-api-test
    ports:
      - "5984:5984"

そしてここに私のドッカーのバージョンがあります:

+ docker version
Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:10:01 2018
 OS/Arch:   linux/AMD64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.03.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   0520e24
  Built:    Wed Mar 21 23:08:31 2018
  OS/Arch:  linux/AMD64
  Experimental: false

そして私のdocker-composeバージョンは:

docker-compose version 1.25.0, build 0a186604
docker-py version: 4.1.0
CPython version: 3.7.4

私のubuntu 16サーバーでdocker-composeを実行すると、次のようになります。

client version 1.38 is too new. Maximum supported API version is 1.37", "stderr_lines": ["client version 1.38 is too new. Maximum supported API version is 1.37"

誰かがそれに光を当てることができますか?

3
Learner

docker-composeクライアントによるAPI呼び出しは、クライアントが壊れないようにバージョン管理されています。たとえば、コンテナを作成するには、POSTを次のようにします。

/v1.36/containers/create?name=...

呼び出しに使用されるAPIバージョンは、docker-compose.ymlファイルのversionディレクティブに基づいています。ドキュメントでdocker-composeファイル形式とAPIの対応を見つけることができませんでしたが、バージョン3.7のAPIバージョンは1.38であると想定しています。

18.03.0-ce docker engineリリースは、この互換性マトリックスに従って、3.6までの構成ファイル形式およびAPIバージョン1.37と互換性があります。 ファイル構成のバージョンとアップグレード

問題は、docker-composeクライアントがエンジンよりも新しく、3.7形式を理解していますが、この形式はエンジンと互換性がないということです。正常に動作させるには、version: '3.6'を使用するか、エンジンをバージョン18.06.0以降に更新してください

お役に立てれば。

3
b0gusb