运行docker-compose时,我得到:客户端版本1.38太新。支持的最大API版本为1.37英寸

时间:2019-12-18 04:15:22

标签: docker docker-compose docker-swarm

我正在使用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"

有人可以照亮它吗?

1 个答案:

答案 0 :(得分:1)

docker-compose客户端进行的

API调用已进行版本控制,以确保客户端不会中断。例如,要创建一个容器,它将使POST变为:

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

用于调用的API版本基于version文件中的docker-compose.yml指令。我在文档中找不到docker-compose文件格式和API之间的对应关系,但我假设3.7版的API版本为1.38。

根据此兼容性列表,18.03.0-ce docker引擎版本与高达3.6的撰写文件格式和API版本1.37兼容: Compose file versions and upgrading

问题是docker-compose客户端比引擎更新,并且可以理解3.7格式,但该格式与引擎不兼容。使事情发挥作用  version: '3.6'或将引擎更新到版本18.06.0 +

希望这会有所帮助。