1---
2aliases: ["/engine/misc/deprecated/"]
3description: "Deprecated Features."
4keywords: "docker, documentation, about, technology, deprecate"
5---
6
7<!-- This file is maintained within the docker/cli GitHub
8 repository at https://github.com/docker/cli/. Make all
9 pull requests against that repo. If you see this file in
10 another repository, consider it read-only there, as it will
11 periodically be overwritten by the definitive file. Pull
12 requests which include edits to this file in other repositories
13 will be rejected.
14-->
15
16# Deprecated Engine Features
17
18This page provides an overview of features that are deprecated in Engine. Changes
19in packaging, and supported (Linux) distributions are not included. To learn
20about end of support for Linux distributions, refer to the
21[release notes](https://docs.docker.com/engine/release-notes/).
22
23## Feature Deprecation Policy
24
25As changes are made to Docker there may be times when existing features need to
26be removed or replaced with newer features. Before an existing feature is removed
27it is labeled as "deprecated" within the documentation and remains in Docker for
28at least one stable release unless specified explicitly otherwise. After that time
29it may be removed.
30
31Users are expected to take note of the list of deprecated features each release
32and plan their migration away from those features, and (if applicable) towards
33the replacement features as soon as possible.
34
35## Deprecated Engine Features
36
37The table below provides an overview of the current status of deprecated features:
38
39- **Deprecated**: the feature is marked "deprecated" and should no longer be used.
40 The feature may be removed, disabled, or change behavior in a future release.
41 The _"Deprecated"_ column contains the release in which the feature was marked
42 deprecated, whereas the _"Remove"_ column contains a tentative release in which
43 the feature is to be removed. If no release is included in the _"Remove"_ column,
44 the release is yet to be decided on.
45- **Removed**: the feature was removed, disabled, or hidden. Refer to the linked
46 section for details. Some features are "soft" deprecated, which means that they
47 remain functional for backward compatibility, and to allow users to migrate to
48 alternatives. In such cases, a warning may be printed, and users should not rely
49 on this feature.
50
51| Status | Feature | Deprecated | Remove |
52|------------|------------------------------------------------------------------------------------------------------------------------------------|------------|--------|
53| Deprecated | [Deprecate legacy API versions](#deprecate-legacy-api-versions) | v25.0 | v26.0 |
54| Deprecated | [Container short ID in network Aliases field](#container-short-id-in-network-aliases-field) | v25.0 | v26.0 |
55| Deprecated | [IsAutomated field, and "is-automated" filter on docker search](#isautomated-field-and-is-automated-filter-on-docker-search) | v25.0 | v26.0 |
56| Removed | [logentries logging driver](#logentries-logging-driver) | v24.0 | v25.0 |
57| Removed | [OOM-score adjust for the daemon](#oom-score-adjust-for-the-daemon) | v24.0 | v25.0 |
58| Removed | [Buildkit build information](#buildkit-build-information) | v23.0 | v24.0 |
59| Deprecated | [Legacy builder for Linux images](#legacy-builder-for-linux-images) | v23.0 | - |
60| Deprecated | [Legacy builder fallback](#legacy-builder-fallback) | v23.0 | - |
61| Removed | [Btrfs storage driver on CentOS 7 and RHEL 7](#btrfs-storage-driver-on-centos-7-and-rhel-7) | v20.10 | v23.0 |
62| Removed | [Support for encrypted TLS private keys](#support-for-encrypted-tls-private-keys) | v20.10 | v23.0 |
63| Removed | [Kubernetes stack and context support](#kubernetes-stack-and-context-support) | v20.10 | v23.0 |
64| Deprecated | [Pulling images from non-compliant image registries](#pulling-images-from-non-compliant-image-registries) | v20.10 | - |
65| Removed | [Linux containers on Windows (LCOW)](#linux-containers-on-windows-lcow-experimental) | v20.10 | v23.0 |
66| Deprecated | [BLKIO weight options with cgroups v1](#blkio-weight-options-with-cgroups-v1) | v20.10 | - |
67| Removed | [Kernel memory limit](#kernel-memory-limit) | v20.10 | v23.0 |
68| Removed | [Classic Swarm and overlay networks using external key/value stores](#classic-swarm-and-overlay-networks-using-cluster-store) | v20.10 | v23.0 |
69| Removed | [Support for the legacy `~/.dockercfg` configuration file for authentication](#support-for-legacy-dockercfg-configuration-files) | v20.10 | v23.0 |
70| Deprecated | [CLI plugins support](#cli-plugins-support) | v20.10 | - |
71| Deprecated | [Dockerfile legacy `ENV name value` syntax](#dockerfile-legacy-env-name-value-syntax) | v20.10 | - |
72| Removed | [`docker build --stream` flag (experimental)](#docker-build---stream-flag-experimental) | v20.10 | v20.10 |
73| Deprecated | [`fluentd-async-connect` log opt](#fluentd-async-connect-log-opt) | v20.10 | - |
74| Removed | [Configuration options for experimental CLI features](#configuration-options-for-experimental-cli-features) | v19.03 | v23.0 |
75| Deprecated | [Pushing and pulling with image manifest v2 schema 1](#pushing-and-pulling-with-image-manifest-v2-schema-1) | v19.03 | v20.10 |
76| Removed | [`docker engine` subcommands](#docker-engine-subcommands) | v19.03 | v20.10 |
77| Removed | [Top-level `docker deploy` subcommand (experimental)](#top-level-docker-deploy-subcommand-experimental) | v19.03 | v20.10 |
78| Removed | [`docker stack deploy` using "dab" files (experimental)](#docker-stack-deploy-using-dab-files-experimental) | v19.03 | v20.10 |
79| Removed | [Support for the `overlay2.override_kernel_check` storage option](#support-for-the-overlay2override_kernel_check-storage-option) | v19.03 | v24.0 |
80| Removed | [AuFS storage driver](#aufs-storage-driver) | v19.03 | v24.0 |
81| Removed | [Legacy "overlay" storage driver](#legacy-overlay-storage-driver) | v18.09 | v24.0 |
82| Removed | [Device mapper storage driver](#device-mapper-storage-driver) | v18.09 | v25.0 |
83| Removed | [Use of reserved namespaces in engine labels](#use-of-reserved-namespaces-in-engine-labels) | v18.06 | v20.10 |
84| Removed | [`--disable-legacy-registry` override daemon option](#--disable-legacy-registry-override-daemon-option) | v17.12 | v19.03 |
85| Removed | [Interacting with V1 registries](#interacting-with-v1-registries) | v17.06 | v17.12 |
86| Removed | [Asynchronous `service create` and `service update` as default](#asynchronous-service-create-and-service-update-as-default) | v17.05 | v17.10 |
87| Removed | [`-g` and `--graph` flags on `dockerd`](#-g-and---graph-flags-on-dockerd) | v17.05 | v23.0 |
88| Deprecated | [Top-level network properties in NetworkSettings](#top-level-network-properties-in-networksettings) | v1.13 | v17.12 |
89| Removed | [`filter` param for `/images/json` endpoint](#filter-param-for-imagesjson-endpoint) | v1.13 | v20.10 |
90| Removed | [`repository:shortid` image references](#repositoryshortid-image-references) | v1.13 | v17.12 |
91| Removed | [`docker daemon` subcommand](#docker-daemon-subcommand) | v1.13 | v17.12 |
92| Removed | [Duplicate keys with conflicting values in engine labels](#duplicate-keys-with-conflicting-values-in-engine-labels) | v1.13 | v17.12 |
93| Deprecated | [`MAINTAINER` in Dockerfile](#maintainer-in-dockerfile) | v1.13 | - |
94| Deprecated | [API calls without a version](#api-calls-without-a-version) | v1.13 | v17.12 |
95| Removed | [Backing filesystem without `d_type` support for overlay/overlay2](#backing-filesystem-without-d_type-support-for-overlayoverlay2) | v1.13 | v17.12 |
96| Removed | [`--automated` and `--stars` flags on `docker search`](#--automated-and---stars-flags-on-docker-search) | v1.12 | v20.10 |
97| Deprecated | [`-h` shorthand for `--help`](#-h-shorthand-for---help) | v1.12 | v17.09 |
98| Removed | [`-e` and `--email` flags on `docker login`](#-e-and---email-flags-on-docker-login) | v1.11 | v17.06 |
99| Deprecated | [Separator (`:`) of `--security-opt` flag on `docker run`](#separator--of---security-opt-flag-on-docker-run) | v1.11 | v17.06 |
100| Deprecated | [Ambiguous event fields in API](#ambiguous-event-fields-in-api) | v1.10 | - |
101| Removed | [`-f` flag on `docker tag`](#-f-flag-on-docker-tag) | v1.10 | v1.12 |
102| Removed | [HostConfig at API container start](#hostconfig-at-api-container-start) | v1.10 | v1.12 |
103| Removed | [`--before` and `--since` flags on `docker ps`](#--before-and---since-flags-on-docker-ps) | v1.10 | v1.12 |
104| Removed | [Driver-specific log tags](#driver-specific-log-tags) | v1.9 | v1.12 |
105| Removed | [Docker Content Trust `ENV` passphrase variables name change](#docker-content-trust-env-passphrase-variables-name-change) | v1.9 | v1.12 |
106| Removed | [`/containers/(id or name)/copy` endpoint](#containersid-or-namecopy-endpoint) | v1.8 | v1.12 |
107| Removed | [LXC built-in exec driver](#lxc-built-in-exec-driver) | v1.8 | v1.10 |
108| Removed | [Old Command Line Options](#old-command-line-options) | v1.8 | v1.10 |
109| Removed | [`--api-enable-cors` flag on `dockerd`](#--api-enable-cors-flag-on-dockerd) | v1.6 | v17.09 |
110| Removed | [`--run` flag on `docker commit`](#--run-flag-on-docker-commit) | v0.10 | v1.13 |
111| Removed | [Three arguments form in `docker import`](#three-arguments-form-in-docker-import) | v0.6.7 | v1.12 |
112
113### Deprecate legacy API versions
114
115**Deprecated in Release: v25.0**
116**Target For Removal In Release: v26.0**
117
118The Docker daemon provides a versioned API for backward compatibility with old
119clients. Docker clients can perform API-version negotiation to select the most
120recent API version supported by the daemon (downgrading to and older version of
121the 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
124Docker Engine versions through v25.0 provide support for all [API versions](https://docs.docker.com/engine/api/#api-version-matrix)
125included in stable releases for a given platform. For Docker daemons on Linux,
126the earliest supported API version is 1.12 (corresponding with Docker Engine
127v1.0.0), whereas for Docker daemons on Windows, the earliest supported API
128version is 1.24 (corresponding with Docker Engine v1.12.0).
129
130Support for legacy API versions (providing old API versions on current versions
131of the Docker Engine) is primarily intended to provide compatibility with recent,
132but still supported versions of the client, which is a common scenario (the Docker
133daemon may be updated to the latest release, but not all clients may be up-to-date
134or vice versa). Support for API versions before that (API versions provided by
135EOL versions of the Docker Daemon) is provided on a "best effort" basis.
136
137Use of old API versions is very rare, and support for legacy API versions
138involves significant complexity (Docker 1.0.0 having been released 10 years ago).
139Because of this, we'll start deprecating support for legacy API versions.
140
141Docker Engine v25.0 by default disables API version older than 1.24 (aligning
142the minimum supported API version between Linux and Windows daemons). When
143connecting with a client that uses an API version version older than 1.24,
144the daemon returns an error. The following example configures the docker
145CLI to use API version 1.23, which produces an error:
146
147```console
148DOCKER_API_VERSION=1.23 docker version
149Error 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
152An environment variable (`DOCKER_MIN_API_VERSION`) is introduced that allows
153re-enabling older API versions in the daemon. This environment variable must
154be set in the daemon's environment (for example, through a [systemd override
155file](https://docs.docker.com/config/daemon/systemd/)), and the specified
156API version must be supported by the daemon (`1.12` or higher on Linux, or
157`1.24` or higher on Windows).
158
159Support for API versions lower than `1.24` will be permanently removed in Docker
160Engine v26, and the minimum supported API version will be incrementally raised
161in releases following that.
162
163We do not recommend depending on the `DOCKER_MIN_API_VERSION` environment
164variable other than for exceptional cases where it's not possible to update
165old clients, and those clients must be supported.
166
167### Container short ID in network Aliases field
168
169**Deprecated in Release: v25.0**
170**Target For Remove In Release: v26.0**
171
172The `Aliases` field returned by `docker inspect` contains the container short
173ID once the container is started. This behavior is deprecated in v25.0 but
174kept until the next release, v26.0. Starting with that version, the `Aliases`
175field will only contain the aliases set through the `docker container create`
176and `docker run` flag `--network-alias`.
177
178A new field `DNSNames` containing the container name (if one was specified),
179the hostname, the network aliases, as well as the container short ID, has been
180introduced in v25.0 and should be used instead of the `Aliases` field.
181
182### IsAutomated field, and "is-automated" filter on docker search
183
184**Deprecated in Release: v25.0**
185**Target For Removal In Release: v26.0**
186
187The "is_automated" field has been deprecated by Docker Hub's search API.
188Consequently, the `IsAutomated` field in image search will always be set
189to `false` in future, and searching for "is-automated=true" will yield no
190results.
191
192The `AUTOMATED` column has been removed from the default `docker search`
193and `docker image search` output in v25.0, and the corresponding `IsAutomated`
194templating option will be removed in v26.0.
195
196### Logentries logging driver
197
198**Deprecated in Release: v24.0**
199**Removed in Release: v25.0**
200
201The logentries service SaaS was shut down on November 15, 2022, rendering
202this logging driver non-functional. Users should no longer use this logging
203driver, and the driver has been removed in Docker 25.0. Existing containers
204using this logging-driver are migrated to use the "local" logging driver
205after upgrading.
206
207### OOM-score adjust for the daemon
208
209**Deprecated in Release: v24.0**
210**Removed in Release: v25.0**
211
212The `oom-score-adjust` option was added to prevent the daemon from being
213OOM-killed before other processes. This option was mostly added as a
214convenience, as running the daemon as a systemd unit was not yet common.
215
216Having the daemon set its own limits is not best-practice, and something
217better handled by the process-manager starting the daemon.
218
219Docker v20.10 and newer no longer adjust the daemon's OOM score by default,
220instead setting the OOM-score to the systemd unit (OOMScoreAdjust) that's
221shipped with the packages.
222
223Users currently depending on this feature are recommended to adjust the
224daemon's OOM score using systemd or through other means, when starting
225the daemon.
226
227### Buildkit build information
228
229**Deprecated in Release: v23.0**
230**Removed in Release: v24.0**
231
232[Build information](https://github.com/moby/buildkit/blob/v0.11/docs/buildinfo.md)
233structures have been introduced in [BuildKit v0.10.0](https://github.com/moby/buildkit/releases/tag/v0.10.0)
234and are generated with build metadata that allows you to see all the sources
235(images, git repositories) that were used by the build with their exact
236versions and also the configuration that was passed to the build. This
237information is also embedded into the image configuration if one is generated.
238
239### Legacy builder for Linux images
240
241**Deprecated in Release: v23.0**
242
243Docker v23.0 now uses BuildKit by default to build Linux images, and uses the
244[Buildx](https://docs.docker.com/buildx/working-with-buildx/) CLI component for
245`docker build`. With this change, `docker build` now exposes all advanced features
246that BuildKit provides and which were previously only available through the
247`docker buildx` subcommands.
248
249The Buildx component is installed automatically when installing the `docker` CLI
250using our `.deb` or `.rpm` packages, and statically linked binaries are provided
251both on `download.docker.com`, and through the [`docker/buildx-bin` image](https://hub.docker.com/r/docker/buildx-bin)
252on Docker Hub. Refer the [Buildx section](http://docs.docker.com/go/buildx/) for
253detailed instructions on installing the Buildx component.
254
255This release marks the beginning of the deprecation cycle of the classic ("legacy")
256builder for Linux images. No active development will happen on the classic builder
257(except for bugfixes). BuildKit development started five Years ago, left the
258"experimental" phase since Docker 18.09, and is already the default builder for
259[Docker Desktop](https://docs.docker.com/desktop/previous-versions/3.x-mac/#docker-desktop-320).
260While we're comfortable that BuildKit is stable for general use, there may be
261some changes in behavior. If you encounter issues with BuildKit, we encourage
262you to report issues in the [BuildKit issue tracker on GitHub](https://github.com/moby/buildkit/){:target="_blank" rel="noopener" class="_"}
263
264> Classic builder for building Windows images
265>
266> BuildKit does not (yet) provide support for building Windows images, and
267> `docker build` continues to use the classic builder to build native Windows
268> images on Windows daemons.
269
270### Legacy builder fallback
271
272**Deprecated in Release: v23.0**
273
274[Docker v23.0 now uses BuildKit by default to build Linux images](#legacy-builder-for-linux-images),
275which requires the Buildx component to build images with BuildKit. There may be
276situations where the Buildx component is not available, and BuildKit cannot be
277used.
278
279To provide a smooth transition to BuildKit as the default builder, Docker v23.0
280has an automatic fallback for some situations, or produces an error to assist
281users to resolve the problem.
282
283In situations where the user did not explicitly opt-in to use BuildKit (i.e.,
284`DOCKER_BUILDKIT=1` is not set), the CLI automatically falls back to the classic
285builder, but prints a deprecation warning:
286
287```
288DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
289 Install the buildx component to build images with BuildKit:
290 https://docs.docker.com/go/buildx/
291```
292
293This situation may occur if the `docker` CLI is installed using the static binaries,
294and the Buildx component is not installed or not installed correctly. This fallback
295will be removed in a future release, therefore we recommend to [install the Buildx component](https://docs.docker.com/go/buildx/)
296and use BuildKit for your builds, or opt-out of using BuildKit with `DOCKER_BUILDKIT=0`.
297
298If you opted-in to use BuildKit (`DOCKER_BUILDKIT=1`), but the Buildx component
299is missing, an error is printed instead, and the `docker build` command fails:
300
301```
302ERROR: BuildKit is enabled but the buildx component is missing or broken.
303 Install the buildx component to build images with BuildKit:
304 https://docs.docker.com/go/buildx/
305```
306
307We recommend to [install the Buildx component](https://docs.docker.com/go/buildx/)
308to continue using BuildKit for your builds, but alternatively, users can either
309unset the `DOCKER_BUILDKIT` environment variable to fall back to the legacy builder,
310or opt-out of using BuildKit with `DOCKER_BUILDKIT=0`.
311
312Be aware that the [classic builder is deprecated](#legacy-builder-for-linux-images)
313so both the automatic fallback and opting-out of using BuildKit will no longer
314be possible in a future release.
315
316### Btrfs storage driver on CentOS 7 and RHEL 7
317
318**Removed in Release: v23.0**
319
320The `btrfs` storage driver on CentOS and RHEL was provided as a technology preview
321by CentOS and RHEL, but has been deprecated since the [Red Hat Enterprise Linux 7.4 release](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-btrfs),
322and removed in CentOS 8 and RHEL 8. Users of the `btrfs` storage driver on CentOS
323are recommended to migrate to a different storage driver, such as `overlay2`, which
324is now the default storage driver. Docker 23.0 continues to provide the `btrfs`
325storage driver to allow users to migrate to an alternative driver. The next release
326of Docker will no longer provide this driver.
327
328### Support for encrypted TLS private keys
329
330**Deprecated in Release: v20.10**
331
332**Removed in Release: v23.0**
333
334Use of encrypted TLS private keys has been deprecated, and has been removed.
335Golang has deprecated support for legacy PEM encryption (as specified in
336[RFC 1423](https://datatracker.ietf.org/doc/html/rfc1423)), as it is insecure by
337design (see [https://go-review.googlesource.com/c/go/+/264159](https://go-review.googlesource.com/c/go/+/264159)).
338
339This feature allowed using an encrypted private key with a supplied password,
340but did not provide additional security as the encryption is known to be broken,
341and the key is sitting next to the password in the filesystem. Users are recommended
342to decrypt the private key, and store it un-encrypted to continue using it.
343
344### Kubernetes stack and context support
345
346**Deprecated in Release: v20.10**
347**Removed in Release: v23.0**
348
349Following the deprecation of [Compose on Kubernetes](https://github.com/docker/compose-on-kubernetes),
350support for Kubernetes in the `stack` and `context` commands has been removed from
351the cli, and options related to this functionality are now either ignored, or may
352produce an error.
353
354The following command-line flags are removed from the `docker context` subcommands:
355
356- `--default-stack-orchestrator` - swarm is now the only (and default) orchestrator for stacks.
357- `--kubernetes` - the kubernetes endpoint can no longer be stored in `docker context`.
358- `--kubeconfig` - exporting a context as a kubeconfig file is no longer supported.
359
360The output produced by the `docker context inspect` subcommand no longer contains
361information about `StackOrchestrator` and `Kubernetes` endpoints for new contexts.
362
363The following command-line flags are removed from the `docker stack` subcommands:
364
365- `--kubeconfig` - using a kubeconfig file as context is no longer supported.
366- `--namespace` - configuring the kubernetes namespace for stacks is no longer supported.
367- `--orchestrator` - swarm is now the only (and default) orchestrator for stacks.
368
369The `DOCKER_STACK_ORCHESTRATOR`, `DOCKER_ORCHESTRATOR`, and `KUBECONFIG` environment
370variables, as well as the `stackOrchestrator` option in the `~/.docker/config.json`
371cli configuration file are no longer used, and ignored.
372
373### Pulling images from non-compliant image registries
374
375**Deprecated in Release: v20.10**
376
377Docker Engine v20.10 and up includes optimizations to verify if images in the
378local image cache need updating before pulling, preventing the Docker Engine
379from making unnecessary API requests. These optimizations require the container
380image registry to conform to the [Open Container Initiative Distribution Specification](https://github.com/opencontainers/distribution-spec).
381
382While most registries conform to the specification, we encountered some registries
383to be non-compliant, resulting in `docker pull` to fail.
384
385As a temporary solution, Docker Engine v20.10 includes a fallback mechanism to
386allow `docker pull` to be functional when using a non-compliant registry. A
387warning message is printed in this situation:
388
389 WARNING Failed to pull manifest by the resolved digest. This registry does not
390 appear to conform to the distribution registry specification; falling back to
391 pull by tag. This fallback is DEPRECATED, and will be removed in a future
392 release.
393
394The fallback is added to allow users to either migrate their images to a compliant
395registry, or for these registries to become compliant.
396
397Note that this fallback only addresses failures on `docker pull`. Other commands,
398such as `docker stack deploy`, or pulling images with `containerd` will continue
399to fail.
400
401Given that other functionality is still broken with these registries, we consider
402this fallback a _temporary_ solution, and will remove the fallback in an upcoming
403major release.
404
405### Linux containers on Windows (LCOW) (experimental)
406
407**Deprecated in Release: v20.10**
408**Removed in Release: v23.0**
409
410The experimental feature to run Linux containers on Windows (LCOW) was introduced
411as a technical preview in Docker 17.09. While many enhancements were made after
412its introduction, the feature never reached completeness, and development has
413now stopped in favor of running docker natively on Linux in WSL2.
414
415Developers who want to run Linux workloads on a Windows host are encouraged to use
416[Docker Desktop with WSL2](https://docs.docker.com/docker-for-windows/wsl/) instead.
417
418### BLKIO weight options with cgroups v1
419
420**Deprecated in Release: v20.10**
421
422Specifying blkio weight (`docker run --blkio-weight` and `docker run --blkio-weight-device`)
423is now marked as deprecated when using cgroups v1 because the corresponding features
424were [removed in Linux kernel v5.0 and up](https://github.com/torvalds/linux/commit/f382fb0bcef4c37dc049e9f6963e3baf204d815c).
425When using cgroups v2, the `--blkio-weight` options are implemented using
426[`io.weight](https://github.com/torvalds/linux/blob/v5.0/Documentation/admin-guide/cgroup-v2.rst#io).
427
428### Kernel memory limit
429
430**Deprecated in Release: v20.10**
431**Removed in Release: v23.0**
432
433Specifying kernel memory limit (`docker run --kernel-memory`) is no longer supported
434because the [Linux kernel deprecated `kmem.limit_in_bytes` in v5.4](https://github.com/torvalds/linux/commit/0158115f702b0ba208ab0b5adf44cae99b3ebcc7).
435The OCI runtime specification now marks this option (as well as `--kernel-memory-tcp`)
436as ["NOT RECOMMENDED"](https://github.com/opencontainers/runtime-spec/pull/1093),
437and OCI runtimes such as `runc` no longer support this option.
438
439Docker API v1.42 and up now ignores this option when set. Older versions of the
440API continue to accept the option, but depending on the OCI runtime used, may
441take no effect.
442
443> **Note**
444>
445> While not deprecated (yet) in Docker, the OCI runtime specification also
446> deprecated the `memory.kmem.tcp.limit_in_bytes` option. When using `runc` as
447> runtime, this option takes no effect. The linux kernel did not explicitly
448> deprecate this feature, and there is a tracking ticket in the `runc` issue
449> tracker to determine if this option should be reinstated or if this was an
450> oversight of the Linux kernel maintainers (see [opencontainers/runc#3174](https://github.com/opencontainers/runc/issues/3174)).
451>
452> The `memory.kmem.tcp.limit_in_bytes` option is only supported with cgroups v1,
453> and not available on installations running with cgroups v2. This option is
454> only supported by the API, and not exposed on the `docker` command-line.
455
456### Classic Swarm and overlay networks using cluster store
457
458**Deprecated in Release: v20.10**
459**Removed in Release: v23.0**
460
461Standalone ("classic") Swarm has been deprecated, and with that the use of overlay
462networks using an external key/value store. The corresponding`--cluster-advertise`,
463`--cluster-store`, and `--cluster-store-opt` daemon options have been removed.
464
465### Support for legacy `~/.dockercfg` configuration files
466
467**Deprecated in Release: v20.10**
468**Removed in Release: v23.0**
469
470The docker CLI up until v1.7.0 used the `~/.dockercfg` file to store credentials
471after authenticating to a registry (`docker login`). Docker v1.7.0 replaced this
472file with a new CLI configuration file, located in `~/.docker/config.json`. When
473implementing the new configuration file, the old file (and file-format) was kept
474as a fall-back, to assist existing users with migrating to the new file.
475
476Given that the old file format encourages insecure storage of credentials
477(credentials are stored unencrypted), and that no version of the CLI since
478Docker v1.7.0 has created this file, support for this file, and its format has
479been removed.
480
481### Configuration options for experimental CLI features
482
483**Deprecated in Release: v19.03**
484
485**Removed in Release: v23.0**
486
487The `DOCKER_CLI_EXPERIMENTAL` environment variable and the corresponding `experimental`
488field in the CLI configuration file are deprecated. Experimental features are
489enabled by default, and these configuration options are no longer functional.
490
491Starting with v23.0, the Docker CLI no longer prints `Experimental` for the client
492in the output of `docker version`, and the field has been removed from the JSON
493format.
494
495### CLI plugins support
496
497**Deprecated in Release: v20.10**
498
499CLI Plugin API is now marked as deprecated.
500
501### Dockerfile legacy `ENV name value` syntax
502
503**Deprecated in Release: v20.10**
504
505The Dockerfile `ENV` instruction allows values to be set using either `ENV name=value`
506or `ENV name value`. The latter (`ENV name value`) form can be ambiguous, for example,
507the following defines a single env-variable (`ONE`) with value `"TWO= THREE=world"`,
508but may have intended to be setting three env-vars:
509
510```dockerfile
511ENV ONE TWO= THREE=world
512```
513
514This format also does not allow setting multiple environment-variables in a single
515`ENV` line in the Dockerfile.
516
517Use of the `ENV name value` syntax is discouraged, and may be removed in a future
518release. Users are encouraged to update their Dockerfiles to use the `ENV name=value`
519syntax, for example:
520
521```dockerfile
522ENV ONE="" TWO="" THREE="world"
523```
524
525### `docker build --stream` flag (experimental)
526
527**Deprecated in Release: v20.10**
528**Removed in Release: v20.10**
529
530Docker v17.07 introduced an experimental `--stream` flag on `docker build` which
531allowed the build-context to be incrementally sent to the daemon, instead of
532unconditionally sending the whole build-context.
533
534This functionality has been reimplemented as part of BuildKit, which uses streaming
535by default and the `--stream` option will be ignored when using the classic builder,
536printing a deprecation warning instead.
537
538Users that want to use this feature are encouraged to enable BuildKit by setting
539the `DOCKER_BUILDKIT=1` environment variable or through the daemon or CLI configuration
540files.
541
542### `fluentd-async-connect` log opt
543
544**Deprecated in Release: v20.10**
545
546The `--log-opt fluentd-async-connect` option for the fluentd logging driver is
547[deprecated in favor of `--log-opt fluentd-async`](https://github.com/moby/moby/pull/39086).
548A deprecation message is logged in the daemon logs if the old option is used:
549
550```console
551fluent#New: AsyncConnect is now deprecated, please use Async instead
552```
553
554Users are encouraged to use the `fluentd-async` option going forward, as support
555for the old option will be removed in a future release.
556
557### Pushing and pulling with image manifest v2 schema 1
558
559**Deprecated in Release: v19.03**
560
561**Target For Removal In Release: v20.10**
562
563The image manifest
564[v2 schema 1](https://github.com/docker/distribution/blob/fda42e5ef908bdba722d435ff1f330d40dfcd56c/docs/spec/manifest-v2-1.md)
565format is deprecated in favor of the
566[v2 schema 2](https://github.com/docker/distribution/blob/fda42e5ef908bdba722d435ff1f330d40dfcd56c/docs/spec/manifest-v2-2.md) format.
567
568If the registry you are using still supports v2 schema 1, urge their administrators to move to v2 schema 2.
569
570
571### `docker engine` subcommands
572
573**Deprecated in Release: v19.03**
574
575**Removed in Release: v20.10**
576
577The `docker engine activate`, `docker engine check`, and `docker engine update`
578provided an alternative installation method to upgrade Docker Community engines
579to Docker Enterprise, using an image-based distribution of the Docker Engine.
580
581This feature was only available on Linux, and only when executed on a local node.
582Given the limitations of this feature, and the feature not getting widely adopted,
583the `docker engine` subcommands will be removed, in favor of installation through
584standard package managers.
585
586
587### Top-level `docker deploy` subcommand (experimental)
588
589**Deprecated in Release: v19.03**
590
591**Removed in Release: v20.10**
592
593The top-level `docker deploy` command (using the "Docker Application Bundle"
594(.dab) file format was introduced as an experimental feature in Docker 1.13 /
59517.03, but superseded by support for Docker Compose files using the `docker stack deploy`
596subcommand.
597
598
599### `docker stack deploy` using "dab" files (experimental)
600
601**Deprecated in Release: v19.03**
602
603**Removed in Release: v20.10**
604
605With no development being done on this feature, and no active use of the file
606format, support for the DAB file format and the top-level docker deploy command
607(hidden by default in 19.03), will be removed, in favour of `docker stack deploy`
608using compose files.
609
610### Support for the `overlay2.override_kernel_check` storage option
611
612**Deprecated in Release: v19.03**
613**Removed in Release: v24.0**
614
615This daemon configuration option disabled the Linux kernel version check used
616to detect if the kernel supported OverlayFS with multiple lower dirs, which is
617required for the overlay2 storage driver. Starting with Docker v19.03.7, the
618detection was improved to no longer depend on the kernel _version_, so this
619option was no longer used.
620
621### AuFS storage driver
622
623**Deprecated in Release: v19.03**
624**Removed in Release: v24.0**
625
626The `aufs` storage driver is deprecated in favor of `overlay2`, and has been
627removed in a Docker Engine v24.0. Users of the `aufs` storage driver must
628migrate to a different storage driver, such as `overlay2`, before upgrading
629to Docker Engine v24.0.
630
631The `aufs` storage driver facilitated running Docker on distros that have no
632support for OverlayFS, such as Ubuntu 14.04 LTS, which originally shipped with
633a 3.14 kernel.
634
635Now that Ubuntu 14.04 is no longer a supported distro for Docker, and `overlay2`
636is available to all supported distros (as they are either on kernel 4.x, or have
637support for multiple lowerdirs backported), there is no reason to continue
638maintenance of the `aufs` storage driver.
639
640### Legacy overlay storage driver
641
642**Deprecated in Release: v18.09**
643**Removed in Release: v24.0**
644
645The `overlay` storage driver is deprecated in favor of the `overlay2` storage
646driver, which has all the benefits of `overlay`, without its limitations (excessive
647inode consumption). The legacy `overlay` storage driver has been removed in
648Docker Engine v24.0. Users of the `overlay` storage driver should migrate to the
649`overlay2` storage driver before upgrading to Docker Engine v24.0.
650
651The legacy `overlay` storage driver allowed using overlayFS-backed filesystems
652on pre 4.x kernels. Now that all supported distributions are able to run `overlay2`
653(as they are either on kernel 4.x, or have support for multiple lowerdirs
654backported), there is no reason to keep maintaining the `overlay` storage driver.
655
656### Device mapper storage driver
657
658**Deprecated in Release: v18.09**
659**Disabled by default in Release: v23.0**
660**Removed in Release: v25.0**
661
662The `devicemapper` storage driver is deprecated in favor of `overlay2`, and has
663been removed in Docker Engine v25.0. Users of the `devicemapper` storage driver
664must migrate to a different storage driver, such as `overlay2`, before upgrading
665to Docker Engine v25.0.
666
667The `devicemapper` storage driver facilitates running Docker on older (3.x) kernels
668that have no support for other storage drivers (such as overlay2, or btrfs).
669
670Now that support for `overlay2` is added to all supported distros (as they are
671either on kernel 4.x, or have support for multiple lowerdirs backported), there
672is no reason to continue maintenance of the `devicemapper` storage driver.
673
674### Use of reserved namespaces in engine labels
675
676**Deprecated in Release: v18.06**
677
678**Removed In Release: v20.10**
679
680The namespaces `com.docker.*`, `io.docker.*`, and `org.dockerproject.*` in engine labels
681were always documented to be reserved, but there was never any enforcement.
682
683Usage of these namespaces will now cause a warning in the engine logs to discourage their
684use, and will error instead in v20.10 and above.
685
686
687### `--disable-legacy-registry` override daemon option
688
689**Disabled In Release: v17.12**
690
691**Removed In Release: v19.03**
692
693The `--disable-legacy-registry` flag was disabled in Docker 17.12 and will print
694an error when used. For this error to be printed, the flag itself is still present,
695but hidden. The flag has been removed in Docker 19.03.
696
697
698### Interacting with V1 registries
699
700**Disabled By Default In Release: v17.06**
701
702**Removed In Release: v17.12**
703
704Version 1.8.3 added a flag (`--disable-legacy-registry=false`) which prevents the
705docker daemon from `pull`, `push`, and `login` operations against v1
706registries. Though enabled by default, this signals the intent to deprecate
707the v1 protocol.
708
709Support for the v1 protocol to the public registry was removed in 1.13. Any
710mirror configurations using v1 should be updated to use a
711[v2 registry mirror](https://docs.docker.com/registry/recipes/mirror/).
712
713Starting with Docker 17.12, support for V1 registries has been removed, and the
714`--disable-legacy-registry` flag can no longer be used, and `dockerd` will fail to
715start when set.
716
717
718### Asynchronous `service create` and `service update` as default
719
720**Deprecated In Release: v17.05**
721
722**Disabled by default in release: [v17.10](https://github.com/docker/docker-ce/releases/tag/v17.10.0-ce)**
723
724Docker 17.05 added an optional `--detach=false` option to make the
725`docker service create` and `docker service update` work synchronously. This
726option will be enabled by default in Docker 17.10, at which point the `--detach`
727flag can be used to use the previous (asynchronous) behavior.
728
729The default for this option will also be changed accordingly for `docker service rollback`
730and `docker service scale` in Docker 17.10.
731
732### `-g` and `--graph` flags on `dockerd`
733
734**Deprecated In Release: v17.05**
735
736**Removed In Release: v23.0**
737
738The `-g` or `--graph` flag for the `dockerd` or `docker daemon` command was
739used to indicate the directory in which to store persistent data and resource
740configuration and has been replaced with the more descriptive `--data-root`
741flag. These flags were deprecated and hidden in v17.05, and removed in v23.0.
742
743### Top-level network properties in NetworkSettings
744
745**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
746
747**Target For Removal In Release: v17.12**
748
749When inspecting a container, `NetworkSettings` contains top-level information
750about the default ("bridge") network;
751
752`EndpointID`, `Gateway`, `GlobalIPv6Address`, `GlobalIPv6PrefixLen`, `IPAddress`,
753`IPPrefixLen`, `IPv6Gateway`, and `MacAddress`.
754
755These properties are deprecated in favor of per-network properties in
756`NetworkSettings.Networks`. These properties were already "deprecated" in
757docker 1.9, but kept around for backward compatibility.
758
759Refer to [#17538](https://github.com/docker/docker/pull/17538) for further
760information.
761
762### `filter` param for `/images/json` endpoint
763**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
764
765**Removed In Release: v20.10**
766
767The `filter` param to filter the list of image by reference (name or name:tag)
768is now implemented as a regular filter, named `reference`.
769
770### `repository:shortid` image references
771**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
772
773**Removed In Release: v17.12**
774
775The `repository:shortid` syntax for referencing images is very little used,
776collides with tag references, and can be confused with digest references.
777
778Support for the `repository:shortid` notation to reference images was removed
779in Docker 17.12.
780
781### `docker daemon` subcommand
782**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
783
784**Removed In Release: v17.12**
785
786The daemon is moved to a separate binary (`dockerd`), and should be used instead.
787
788### Duplicate keys with conflicting values in engine labels
789**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
790
791**Removed In Release: v17.12**
792
793When setting duplicate keys with conflicting values, an error will be produced, and the daemon
794will fail to start.
795
796### `MAINTAINER` in Dockerfile
797**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
798
799`MAINTAINER` was an early very limited form of `LABEL` which should be used instead.
800
801### API calls without a version
802**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
803
804**Target For Removal In Release: v17.12**
805
806API versions should be supplied to all API calls to ensure compatibility with
807future Engine versions. Instead of just requesting, for example, the URL
808`/containers/json`, you must now request `/v1.25/containers/json`.
809
810### Backing filesystem without `d_type` support for overlay/overlay2
811**Deprecated In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
812
813**Removed In Release: v17.12**
814
815The overlay and overlay2 storage driver does not work as expected if the backing
816filesystem does not support `d_type`. For example, XFS does not support `d_type`
817if it is formatted with the `ftype=0` option.
818
819Support for these setups has been removed, and Docker v23.0 and up now fails to
820start when attempting to use the `overlay2` or `overlay` storage driver on a
821backing filesystem without `d_type` support.
822
823Refer to [#27358](https://github.com/docker/docker/issues/27358) for details.
824
825
826### `--automated` and `--stars` flags on `docker search`
827
828**Deprecated in Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
829
830**Removed In Release: v20.10**
831
832The `docker search --automated` and `docker search --stars` options are deprecated.
833Use `docker search --filter=is-automated=<true|false>` and `docker search --filter=stars=...` instead.
834
835
836### `-h` shorthand for `--help`
837
838**Deprecated In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
839
840**Target For Removal In Release: v17.09**
841
842The shorthand (`-h`) is less common than `--help` on Linux and cannot be used
843on all subcommands (due to it conflicting with, e.g. `-h` / `--hostname` on
844`docker create`). For this reason, the `-h` shorthand was not printed in the
845"usage" output of subcommands, nor documented, and is now marked "deprecated".
846
847### `-e` and `--email` flags on `docker login`
848**Deprecated In Release: [v1.11.0](https://github.com/docker/docker/releases/tag/v1.11.0)**
849
850**Removed In Release: [v17.06](https://github.com/docker/docker-ce/releases/tag/v17.06.0-ce)**
851
852The docker login command is removing the ability to automatically register for an account with the target registry if the given username doesn't exist. Due to this change, the email flag is no longer required, and will be deprecated.
853
854### Separator (`:`) of `--security-opt` flag on `docker run`
855**Deprecated In Release: [v1.11.0](https://github.com/docker/docker/releases/tag/v1.11.0)**
856
857**Target For Removal In Release: v17.06**
858
859The flag `--security-opt` doesn't use the colon separator (`:`) anymore to divide keys and values, it uses the equal symbol (`=`) for consistency with other similar flags, like `--storage-opt`.
860
861### Ambiguous event fields in API
862**Deprecated In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
863
864The fields `ID`, `Status` and `From` in the events API have been deprecated in favor of a more rich structure.
865See the events API documentation for the new format.
866
867### `-f` flag on `docker tag`
868**Deprecated In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
869
870**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
871
872To make tagging consistent across the various `docker` commands, the `-f` flag on the `docker tag` command is deprecated. It is no longer necessary to specify `-f` to move a tag from one image to another. Nor will `docker` generate an error if the `-f` flag is missing and the specified tag is already in use.
873
874### HostConfig at API container start
875**Deprecated In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
876
877**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
878
879Passing an `HostConfig` to `POST /containers/{name}/start` is deprecated in favor of
880defining it at container creation (`POST /containers/create`).
881
882### `--before` and `--since` flags on `docker ps`
883
884**Deprecated In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
885
886**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
887
888The `docker ps --before` and `docker ps --since` options are deprecated.
889Use `docker ps --filter=before=...` and `docker ps --filter=since=...` instead.
890
891
892### Driver-specific log tags
893**Deprecated In Release: [v1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0)**
894
895**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
896
897Log tags are now generated in a standard way across different logging drivers.
898Because of which, the driver specific log tag options `syslog-tag`, `gelf-tag` and
899`fluentd-tag` have been deprecated in favor of the generic `tag` option.
900
901```console
902$ docker --log-driver=syslog --log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"
903```
904
905
906### Docker Content Trust ENV passphrase variables name change
907**Deprecated In Release: [v1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0)**
908
909**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
910
911Since 1.9, Docker Content Trust Offline key has been renamed to Root key and the Tagging key has been renamed to Repository key. Due to this renaming, we're also changing the corresponding environment variables
912
913- DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE is now named DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE
914- DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE is now named DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
915
916
917### `/containers/(id or name)/copy` endpoint
918
919**Deprecated In Release: [v1.8.0](https://github.com/docker/docker/releases/tag/v1.8.0)**
920
921**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
922
923The endpoint `/containers/(id or name)/copy` is deprecated in favor of `/containers/(id or name)/archive`.
924
925
926### LXC built-in exec driver
927**Deprecated In Release: [v1.8.0](https://github.com/docker/docker/releases/tag/v1.8.0)**
928
929**Removed In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
930
931The built-in LXC execution driver, the lxc-conf flag, and API fields have been removed.
932
933
934### Old Command Line Options
935**Deprecated In Release: [v1.8.0](https://github.com/docker/docker/releases/tag/v1.8.0)**
936
937**Removed In Release: [v1.10.0](https://github.com/docker/docker/releases/tag/v1.10.0)**
938
939The flags `-d` and `--daemon` are deprecated in favor of the `daemon` subcommand:
940
941 docker daemon -H ...
942
943The following single-dash (`-opt`) variant of certain command line options
944are deprecated and replaced with double-dash options (`--opt`):
945
946 docker attach -nostdin
947 docker attach -sig-proxy
948 docker build -no-cache
949 docker build -rm
950 docker commit -author
951 docker commit -run
952 docker events -since
953 docker history -notrunc
954 docker images -notrunc
955 docker inspect -format
956 docker ps -beforeId
957 docker ps -notrunc
958 docker ps -sinceId
959 docker rm -link
960 docker run -cidfile
961 docker run -dns
962 docker run -entrypoint
963 docker run -expose
964 docker run -link
965 docker run -lxc-conf
966 docker run -n
967 docker run -privileged
968 docker run -volumes-from
969 docker search -notrunc
970 docker search -stars
971 docker search -t
972 docker search -trusted
973 docker tag -force
974
975The following double-dash options are deprecated and have no replacement:
976
977 docker run --cpuset
978 docker run --networking
979 docker ps --since-id
980 docker ps --before-id
981 docker search --trusted
982
983**Deprecated In Release: [v1.5.0](https://github.com/docker/docker/releases/tag/v1.5.0)**
984
985**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
986
987The single-dash (`-help`) was removed, in favor of the double-dash `--help`
988
989 docker -help
990 docker [COMMAND] -help
991
992
993### `--api-enable-cors` flag on dockerd
994
995**Deprecated In Release: [v1.6.0](https://github.com/docker/docker/releases/tag/v1.6.0)**
996
997**Removed In Release: [v17.09](https://github.com/docker/docker-ce/releases/tag/v17.09.0-ce)**
998
999The flag `--api-enable-cors` is deprecated since v1.6.0. Use the flag
1000`--api-cors-header` instead.
1001
1002### `--run` flag on docker commit
1003
1004**Deprecated In Release: [v0.10.0](https://github.com/docker/docker/releases/tag/v0.10.0)**
1005
1006**Removed In Release: [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)**
1007
1008The flag `--run` of the docker commit (and its short version `-run`) were deprecated in favor
1009of the `--changes` flag that allows to pass `Dockerfile` commands.
1010
1011
1012### Three arguments form in `docker import`
1013**Deprecated In Release: [v0.6.7](https://github.com/docker/docker/releases/tag/v0.6.7)**
1014
1015**Removed In Release: [v1.12.0](https://github.com/docker/docker/releases/tag/v1.12.0)**
1016
1017The `docker import` command format `file|URL|- [REPOSITORY [TAG]]` is deprecated since November 2013. It's no more supported.
View as plain text