【问题标题】:when running docker-compose I get: client version 1.38 is too new. Maximum supported API version is 1.37"运行 docker-compose 时,我得到:客户端版本 1.38 太新。支持的最大 API 版本为 1.37"
【发布时间】:2019-12-18 04:15:22
【问题描述】:

我使用 docker compose 如下:

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

这是我的 docker 版本:

+ 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"

谁能解释一下?

【问题讨论】:

    标签: docker docker-compose docker-swarm


    【解决方案1】:

    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 引擎版本与 compose 文件格式最高 3.6 和 API 版本 1.37 兼容: Compose file versions and upgrading

    问题是 docker-compose 客户端比引擎更新,它理解 3.7 格式,但这种格式与引擎不兼容。让事情发挥作用 version: '3.6' 或者更新引擎到18.06.0+版本

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 2014-02-28
      相关资源
      最近更新 更多