问题描述
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
我用apt-get install docker.io
和docker-compose安装了docker
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.2版本而不是最新的1.3版本)
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网站上的说明安装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向上,仍然显示类似的信息,你可以卸载它(通过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
固定后。
第六种办法
升级Docker(sudo service docker restart
)后尝试重新启动docker服务。
我有一个非常类似的问题,升级了Docker,并且在我重新启动服务之前一直运行相同的错误消息。 (参见https://serverfault.com/a/700707/295500。)
第七种办法
由于docker-compose 1.4可以设置客户端API版本,因此您不必降级客户端或升级服务器。
您也不必设置特定的API版本,您可以设置环境变量COMPOSE_API_VERSION=auto
以使其具有客户端版本auto-detect。
第八种办法
我发现卸载了安装了apt-get的版本,并通过命令行wget直接从他们的下载页面下载最新版本似乎工作..