docker-compose up leads to “client and server don&

2019-01-21 22:34发布

问题:

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.