client is newer than server (client API version: 1.24, server API version: 1.21)

12,522

Solution 1

Docker is running on client / server model, each Docker Engine release has a specific API version.

The combination of the release version and API version of Docker is as follows:

https://docs.docker.com/engine/api/v1.26/#section/Versioning

According to the table above, the Docker API v1.24 is used in Docker Engine 1.12.x and the Docker API v1.21 is used in the Docker Engine 1.9.x. The server needs API version equal to or later than the client.

You have the following three options.

  1. Upgrade the server side to Docker Engine 1.12.x or later.
  2. Downgrade the client side to Engine 1.9.x or lower.
  3. Downgrade the API version used at run time by exporting the DOCKER_API_VERSION=1.21 to environment variable on the client side.

Solution 2

Try setting the version using the command:

export DOCKER_API_VERSION=1.23

It worked perfectly fine for me and resolved the issue.

Solution 3

The other answers don't really explain how to do this on a windows machine. I had no access to the gui so I had to get it done from the CLI.

I know this is old, but I fumbled with this for a while until I finally figured it out. So, I hope this helps someone.

Windows Users

For people who are on windows you can set your env variables by going to the Advanced System Settings.

If you need to do it via command line. This is what worked for me:

setx /M DOCKER_API_VERSION "1.23"

Additionally, you can also set the permanent host location, and then just run your commands without the -H option by using the following:

setx /M DOCKER_HOST "192.168.207.131:2375"

NOTE: after you set the variables you must close the command line and open a new one for the changes to take affect.

NOTE 2: If changes are being made to a remote system, you need to logout and log back in for the changes to take affect.

Share:
12,522
Picco
Author by

Picco

Updated on June 25, 2022

Comments

  • Picco
    Picco almost 2 years

    When I do :

    sudo docker version
    

    I obtain this error:

    Error response from daemon:client is newer than server (client API version: 1.24, server API version: 1.21)
    

    Anyone can help me to understand what I have to do?