docker-compose up导致"客户端和服务器没有相同的版本(客户端:1.14,服务器:1.12)"错误,但客户端和服务器具有相同的版本

时间:2015-04-19 07:43:08

标签: linux ubuntu docker docker-compose

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,并使用

安装了docker-compose
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。

9 个答案:

答案 0 :(得分:48)

签出环境变量COMPOSE_API_VERSION

我得到了ERROR: client and server don't have same version (client : 1.19, server: 1.18),然后我做了export COMPOSE_API_VERSION=1.18并解决了问题!

答案 1 :(得分:16)

这是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`

你可以找到不同版本的docker-compose at https://github.com/docker/compose/releases

根据您的服务器版本,您需要尝试使用不同的较低版本的docker-compose,直到有效。

答案 2 :(得分:12)

我认为你只需要使用更新版本的Docker。据推测,客户端版本1.14在Compose内部使用。

卸载apt-get版本并按照Docker网站上的说明安装Docker:

 wget -qO- https://get.docker.com/ | sh

答案 3 :(得分:3)

如果你已经安装了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

中找到

答案 4 :(得分:3)

我尝试了很多解决方案但是当我使用sudo apt-get upgrade docker-engine时,我看到消息说我已经安装了名为docker-ce的不同名称的docker。我用sudo apt-get upgrade docker-ce修复后。

答案 5 :(得分:2)

升级Docker(sudo service docker restart)后尝试重新启动docker服务。

我有一个非常类似的问题,升级了Docker,并且在重新启动服务之前一直运行相同的错误消息。 (见https://serverfault.com/a/700707/295500。)

答案 6 :(得分:2)

由于docker-compose 1.4可以设置客户端API版本,因此您不必降级客户端或升级服务器。

您也不必设置特定的API版本,您可以设置环境变量COMPOSE_API_VERSION=auto以使其自动检测客户端版本。

答案 7 :(得分:2)

我发现卸载apt-get安装的版本,并通过命令行wget从其下载页面上的最新版本直接下载似乎可行。

答案 8 :(得分:0)

我在Mac上遇到了同样的问题 - 几个月前我通过brew安装了docker,boot2docker和docker-compose(以前的无花果)。我用码头工作了一段时间之后,我因为某种原因离开了它。现在,新docker-toolboxdocker-machine开始发挥作用,我只是"想要使用一个预先配置好的docker-file并说出" up"。我得到了上面的错误。

我尝试了我在网上找到的所有东西 - 也就是降级选项(这对我来说不合适)。最终有效的方法是通过docker-toolbox安装新的homebrew cask并使用以下命令升级我的docker-vm:

docker-machine upgrade docker-dev

在哪里" docker-dev"是您在Virtualbox中的docker-vm-Name(启动它,查看正确的名称)。

现在docker再次运行正常,docker version命令带来正常设置输出。