Skip to content

Commit 5fde1f2

Browse files
authored
Merge pull request #4796 from thaJeztah/deprecate_old_api_versions
deprecate old API versions (1.23 and lower)
2 parents 350d6bc + d2efc5b commit 5fde1f2

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

docs/deprecated.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ The table below provides an overview of the current status of deprecated feature
5050

5151
| Status | Feature | Deprecated | Remove |
5252
|------------|------------------------------------------------------------------------------------------------------------------------------------|------------|--------|
53+
| Deprecated | [Deprecate legacy API versions](#deprecate-legacy-api-versions) | v25.0 | v26.0 |
5354
| Deprecated | [Container short ID in network Aliases field](#container-short-id-in-network-aliases-field) | v25.0 | v26.0 |
5455
| Deprecated | [IsAutomated field, and "is-automated" filter on docker search](#isautomated-field-and-is-automated-filter-on-docker-search) | v25.0 | v26.0 |
5556
| Removed | [logentries logging driver](#logentries-logging-driver) | v24.0 | v25.0 |
@@ -109,6 +110,59 @@ The table below provides an overview of the current status of deprecated feature
109110
| Removed | [`--run` flag on `docker commit`](#--run-flag-on-docker-commit) | v0.10 | v1.13 |
110111
| Removed | [Three arguments form in `docker import`](#three-arguments-form-in-docker-import) | v0.6.7 | v1.12 |
111112

113+
### Deprecate legacy API versions
114+
115+
**Deprecated in Release: v25.0**
116+
**Target For Removal In Release: v26.0**
117+
118+
The Docker daemon provides a versioned API for backward compatibility with old
119+
clients. Docker clients can perform API-version negotiation to select the most
120+
recent API version supported by the daemon (downgrading to and older version of
121+
the API when necessary). API version negotiation was introduced in Docker v1.12.0
122+
(API 1.24), and clients before that used a fixed API version.
123+
124+
Docker Engine versions through v25.0 provide support for all [API versions](https://docs.docker.com/engine/api/#api-version-matrix)
125+
included in stable releases for a given platform. For Docker daemons on Linux,
126+
the earliest supported API version is 1.12 (corresponding with Docker Engine
127+
v1.0.0), whereas for Docker daemons on Windows, the earliest supported API
128+
version is 1.24 (corresponding with Docker Engine v1.12.0).
129+
130+
Support for legacy API versions (providing old API versions on current versions
131+
of the Docker Engine) is primarily intended to provide compatibility with recent,
132+
but still supported versions of the client, which is a common scenario (the Docker
133+
daemon may be updated to the latest release, but not all clients may be up-to-date
134+
or vice versa). Support for API versions before that (API versions provided by
135+
EOL versions of the Docker Daemon) is provided on a "best effort" basis.
136+
137+
Use of old API versions is very rare, and support for legacy API versions
138+
involves significant complexity (Docker 1.0.0 having been released 10 years ago).
139+
Because of this, we'll start deprecating support for legacy API versions.
140+
141+
Docker Engine v25.0 by default disables API version older than 1.24 (aligning
142+
the minimum supported API version between Linux and Windows daemons). When
143+
connecting with a client that uses an API version version older than 1.24,
144+
the daemon returns an error. The following example configures the docker
145+
CLI to use API version 1.23, which produces an error:
146+
147+
```console
148+
DOCKER_API_VERSION=1.23 docker version
149+
Error response from daemon: client version 1.23 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version
150+
```
151+
152+
An environment variable (`DOCKER_MIN_API_VERSION`) is introduced that allows
153+
re-enabling older API versions in the daemon. This environment variable must
154+
be set in the daemon's environment (for example, through a [systemd override
155+
file](https://docs.docker.com/config/daemon/systemd/)), and the specified
156+
API version must be supported by the daemon (`1.12` or higher on Linux, or
157+
`1.24` or higher on Windows).
158+
159+
Support for API versions lower than `1.24` will be permanently removed in Docker
160+
Engine v26, and the minimum supported API version will be incrementally raised
161+
in releases following that.
162+
163+
We do not recommend depending on the `DOCKER_MIN_API_VERSION` environment
164+
variable other than for exceptional cases where it's not possible to update
165+
old clients, and those clients must be supported.
112166

113167
### Container short ID in network Aliases field
114168

0 commit comments

Comments
 (0)