Non-major upgrade of Docker for Mac should work with legacy servers.
Actual behavior
After upgrading to Version 1.12.0-rc2-beta16 (build: 9493), when trying to connect to a Parallels-driven Docker host, I get “Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23)”
1.23 to 1.24 is a minor version upgrade (per semver) and the Docker for Mac version upgrade was also minor - it shouldn’t have broken things already working. Not to mention that: Docker for Mac is still in beta and it’s normal to expect people cannot use it exclusively so compatibility with other host types shouldn’t have been broken.
Information
the output of:
Moby Menu > Diagnose & Feedback on OSX
a reproducible case if this is a bug, Dockerfiles FTW
page URL if this is a docs issue or the name of a man page
host distribution and version ( OSX 10.10.x, OSX 10.11.x, Windows, etc )
I believe you can use the DOCKER_API_VERSION environment variable (see docs) to tell your client to behave as a 1.23 client. A 1.24 client is required to communicate with the API version 1.24 in Beta 16’s server.
Thanks for participating in the Docker for Mac Beta,
David, many thanks for such quick response - really appreciate it.
I am going to test this (had to downgrade client since), but to be candid I am even more surprised now: so client supports both protocols and server told it which version server can support, but client didn’t fall back to that protocol version (basic content negotiation) just because an environmental variable was not set?
IMHO, client and server, in a distributed system should try their best to maintain backwards and forwards compatibility, especially if code to do so does actually exist.