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,并使用
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。
答案 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-toolbox和docker-machine开始发挥作用,我只是"想要使用一个预先配置好的docker-file并说出" up"。我得到了上面的错误。
我尝试了我在网上找到的所有东西 - 也就是降级选项(这对我来说不合适)。最终有效的方法是通过docker-toolbox安装新的homebrew cask并使用以下命令升级我的docker-vm:
docker-machine upgrade docker-dev
在哪里" docker-dev"是您在Virtualbox中的docker-vm-Name(启动它,查看正确的名称)。
现在docker再次运行正常,docker version
命令带来正常设置输出。