Skip to content

Docker client version 19.03.09 doesn't automatically downgrade Docker API version correctly #2533

@lokst

Description

@lokst

Description

The 19.03.09 version of the docker client doesn't automatically downgrade the API version it uses to be compatible with an older daemon. This causes docker push and other Docker commands like docker version to fail if the maximum API version supported by the Docker daemon is lower than the API version used by the docker client.

Steps to reproduce the issue:

  1. Install docker client 19.03.09
  2. Run Docker daemon 18.09.3
  3. Run "docker push"

Describe the results you received:
docker push fails with the error message Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39

When running docker version with version 19.03.09 of the CLI, it fails with:

Client: Docker Engine - Community
 Version:           19.03.9
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9d988398e7
 Built:             Fri May 15 00:22:47 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39

But with version 19.03.08 of the client and the same version of the Docker daemon (18.09.3), docker version produces:

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.39 (downgraded from 1.40)
 Go version:        go1.12.17
 Git commit:        afacb8b7f0
 Built:             Wed Mar 11 01:22:56 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.3
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       774a1f4
  Built:            Thu Feb 28 05:59:55 2019
  OS/Arch:          linux/amd64
  Experimental:     false

Describe the results you expected:
I expected Docker client 19.03.09 to downgrade its API version to 1.39 , similar to what Docker client 19.03.08 does.

Additional information you deem important (e.g. issue happens only occasionally):

Output of docker version:

See above

Output of docker info:

Client:
 Debug Mode: false

Server:
ERROR: Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
errors pretty printing info

Additional environment details (AWS, VirtualBox, physical, etc.):
This happens when the docker CLI is run in a Docker container that communicates with a remote Docker daemon

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions