我正在使用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"
有人可以照亮它吗?
答案 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 +
希望这会有所帮助。