Breaking Key Change in Docker CLI Version Response

Like shared in this topic, I can’t reproduce a difference in the keys.

You can test it easily yourself:

# default version
curl --silent -XGET --unix-socket /run/docker.sock http://localhost/version | jq .

#  specific version
curl --silent -XGET --unix-socket /run/docker.sock http://localhost/v1.44/version | jq .

The output does not have the “Server” key that you have in your output.

Update (before even posting it): They use the output of the docker cli and don’t query the endpoint directly:

docker version --format '{{json .}}' | jq
{
    ...
  },
  "Server": {
    ...
    "Version": "29.0.0",
    "APIVersion": "1.52",
    "MinAPIVersion": "1.44",
    ...
    "Components": [
      {
        "Name": "Engine",
        "Version": "29.0.0",
        "Details": {
          "ApiVersion": "1.52",
          ... 
          "MinAPIVersion": "1.44",
           ...
        }
      },
...
    ]
  }
}
1 Like