{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/11486","labels_url":"https://api.github.com/repos/docker/docker/issues/11486/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/11486/comments","events_url":"https://api.github.com/repos/docker/docker/issues/11486/events","html_url":"https://github.com/docker/docker/issues/11486","id":62841494,"number":11486,"title":"Proposal: Override ApiVersion in client","user":{"login":"ahmetalpbalkan","id":159209,"avatar_url":"https://avatars.githubusercontent.com/u/159209?v=3","gravatar_id":"","url":"https://api.github.com/users/ahmetalpbalkan","html_url":"https://github.com/ahmetalpbalkan","followers_url":"https://api.github.com/users/ahmetalpbalkan/followers","following_url":"https://api.github.com/users/ahmetalpbalkan/following{/other_user}","gists_url":"https://api.github.com/users/ahmetalpbalkan/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetalpbalkan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetalpbalkan/subscriptions","organizations_url":"https://api.github.com/users/ahmetalpbalkan/orgs","repos_url":"https://api.github.com/users/ahmetalpbalkan/repos","events_url":"https://api.github.com/users/ahmetalpbalkan/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetalpbalkan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/kind/proposal","name":"kind/proposal","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-03-19T01:21:53Z","updated_at":"2015-04-13T23:01:18Z","closed_at":null,"body":"### Problem\r\n\r\nSometimes (or frequently) users have trouble talking to the docker engine with their docker client because they accidentally update their docker client and the server now has an older version. \r\n\r\nIt's too hard to get this right and that this usually happens by one off (e.g. client:1.18 server:1.17) and there is not major differences between these versions. This especially happens to the people who are compiling docker from `master` and talking to a Linux daemon in boot2docker or some cloud VM.\r\n\r\n### Proposal\r\n\r\nI propose a power user environment variable `DOCKER_APIVERSION` used in the client to override the constant in [api/common.go](https://github.com/docker/docker/blob/068d343ddfad23ca2f7b407f5be03803029ac311/api/common.go#L18) when set:\r\n\r\n```\r\n$ ./docker info\r\nFATA[0000] Error: client and server don't have same version (client : 1.18, server: 1.17)\r\n\r\n$ DOCKER_APIVERSION=1.17 ./docker info\r\nContainers: 0\r\nImages: 0\r\n[...]\r\n```\r\n\r\nThis can easily help people to try out latest client binaries downloaded from [master.dockerproject.com](https://master.dockerproject.com) which has the latest bug fixes against their existing docker host deployed somewhere on the cloud.\r\n\r\n### Considerations\r\n\r\nSince this enables the way of undefined behavior and feature set mismatch between the client and the engine this must be thoroughly documented that it is dangerous area. (and probably should exist only in development environment documentation instead of user guide).\r\n\r\nUsers will be seeing feature mismatches most of the time in the cutting-edge new features added to cli but missing from the docker host.\r\n"},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/92527512","html_url":"https://github.com/docker/docker/issues/11486#issuecomment-92527512","issue_url":"https://api.github.com/repos/docker/docker/issues/11486","id":92527512,"user":{"login":"ahmetalpbalkan","id":159209,"avatar_url":"https://avatars.githubusercontent.com/u/159209?v=3","gravatar_id":"","url":"https://api.github.com/users/ahmetalpbalkan","html_url":"https://github.com/ahmetalpbalkan","followers_url":"https://api.github.com/users/ahmetalpbalkan/followers","following_url":"https://api.github.com/users/ahmetalpbalkan/following{/other_user}","gists_url":"https://api.github.com/users/ahmetalpbalkan/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetalpbalkan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetalpbalkan/subscriptions","organizations_url":"https://api.github.com/users/ahmetalpbalkan/orgs","repos_url":"https://api.github.com/users/ahmetalpbalkan/repos","events_url":"https://api.github.com/users/ahmetalpbalkan/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetalpbalkan/received_events","type":"User","site_admin":false},"created_at":"2015-04-13T23:01:18Z","updated_at":"2015-04-13T23:01:18Z","body":"@tknerr officially, yes.\r\n\r\nUnofficially, if you want to build just the client binary, you just need the Go compiler ( see [this guide](https://ahmetalpbalkan.com/blog/compiling-docker-cli-on-windows/) –you need to slightly change for OS X/Linux obviously). That's the solution I recommend to my colleagues to get around this problem."}}