可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
docker version
prints:
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
prints:
docker-compose 1.2.0
I installed docker with apt-get install docker.io
and docker-compose with
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
I use Ubuntu 14.04 x64.
回答1:
Checkout the environment variable COMPOSE_API_VERSION.
I was getting ERROR: client and server don't have same version (client : 1.19, server: 1.18)
, then I did export COMPOSE_API_VERSION=1.18
and problem sovled!
回答2:
This is an issue of docker API version used by docker-compose being higher than that that of docker daemon listening to serve.
Easiest way to fix is this to use an older version of docker-compose.
Here is my example but with different version mismatch:
$ docker-compose up
client and server don't have same version (client : 1.18, server: 1.17)
To fix it, I had to install a lower version of docker-compose(1.2 version instead of latest 1.3 version) using following command
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`
You can find different version of docker-compose at
https://github.com/docker/compose/releases
Based on your server version, you need to try different lower versioned docker-compose until one works.
回答3:
I think you just need to use a newer version of Docker. Presumably client version 1.14 is used internally in Compose.
Uninstall the apt-get version and follow the instructions on the Docker website to install Docker:
wget -qO- https://get.docker.com/ | sh
回答4:
you can downgrade your docker-compose version,if you have installled your docker-compose by:
pip install docker-compose
you can uninstall it first by:
pip uninstall docker-compose
then,you can run:
pip install docker-compose==1.3.0
if you docker-compose up,still show the similar info,you can uninstall it(by pip uninstall docker-compose
),and install a lower version docker-compose,such as:
pip install docker-compose==1.2.0
you can go on the loop, if still show the wrong info.
ps:the detail version number can be found in https://github.com/docker/compose/releases
回答5:
Try restarting the docker service after upgrading Docker (sudo service docker restart
).
I had a very similar issue, upgraded Docker, and kept running into the same error message until I restarted the service. (See https://serverfault.com/a/700707/295500.)
回答6:
Since docker-compose 1.4 you can set the client API version, you don't have to downgrade the client or upgrade the server.
You do not have to set a specific API version either, you can set the environment variable COMPOSE_API_VERSION=auto
to have it auto-detect the client version.
回答7:
I tried a lot of solution but when I used sudo apt-get upgrade docker-engine
I see message that I have installed docker with different name as docker-ce
. After I fixed with sudo apt-get upgrade docker-ce
.
回答8:
I found uninstalling the version installed with apt-get and downloading directly from latest version on their download page via command line wget seemed to work..
回答9:
I had the same problem on my Mac - some months ago I installed docker, boot2docker und docker-compose (formerly fig) via brew. After I played a while with docker, I left it for some reason as it was. Now new docker-toolbox and docker-machine come into play and I "just" wanted to use a preconfigured docker-file and say "up". I got the error above.
I tried all things i found on the net - also the downgrade-option (which didn't feel right for me). The thing finally worked, was just to install new docker-toolbox via homebrew cask and upgrade my docker-vm with the following commands:
docker-machine upgrade docker-dev
Where "docker-dev" is your docker-vm-Name in Virtualbox (start it, to see the correct name).
Now docker runs fine again and the docker version
command brings a normal-setup`s output.