github.1git.de/docker/cli@v26.1.3+incompatible/docs/deprecated.md (about)

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