已弃用的 Docker Engine 功能
本页概述了 Engine 中已弃用的功能。变化 ,并且不包括支持的 (Linux) 发行版。要了解 有关终止对 Linux 发行版的支持,请参阅发行说明。
功能弃用策略
随着对 Docker 的更改,有时现有功能可能需要 被删除或替换为新功能。删除现有功能之前 它在文档中被标记为“已弃用”,并在 Docker 中保留 至少一个稳定版本,除非另有明确说明。在那之后 它可能会被删除。
用户应注意每个版本的已弃用功能列表 并计划从这些功能迁移,并(如果适用)朝着 替换功能。
已弃用的引擎功能
下表概述了已弃用功能的当前状态:
已弃用:该功能被标记为“已弃用”,不应再使用。
该功能可能会在未来发行版中被删除、禁用或更改行为。 “Deprecated” 列包含标记该功能的发行版 已弃用,而 “Remove” 列包含一个暂定版本,其中 该功能将被删除。如果 “Remove” 列中不包含任何版本,则 发布尚未决定。
已删除:功能已删除、禁用或隐藏。
有关详细信息,请参阅链接的部分。某些功能已“软”弃用, 这意味着它们仍然有效以实现向后兼容性,并且 允许用户迁移到替代项。在这种情况下,可能会发出警告 打印出来,用户不应依赖此功能。
镜像检查中的非标准字段
在版本:v27.0 中已弃用 目标在版本:v28.0 中移除
返回的字段显示在 (和 返回的
API 端点)返回其他字段,这些字段是
不是镜像配置的一部分,也不是 Docker 镜像规范和 OCI 镜像规范的一部分。Config
docker image inspect
GET /images/{name}/json
这些字段永远不会设置(并且始终返回类型的默认值), 但在留空时,响应中不会省略。由于这些字段不是 旨在作为镜像配置响应的一部分,它们已被弃用, 并将在下一个版本的 API 中删除。
以下字段当前包含在 API 响应中,但未包含在 API 响应中
部分,并废弃:Config
Hostname
Domainname
AttachStdin
AttachStdout
AttachStderr
Tty
OpenStdin
StdinOnce
Image
NetworkDisabled
(除非设置,否则已省略)MacAddress
(除非设置,否则已省略)StopTimeout
(除非设置,否则已省略)
Graphdriver 插件(实验性)
在版本:v27.0 中默认禁用 在版本:v27.0 中默认禁用 在版本:v28.0 中删除的目标
Graphdriver 插件是一项实验性功能,允许使用自定义 用于存储镜像和容器的存储驱动程序。此功能不是 自成立以来一直维护,并且在即将到来的 释放。
在 v27.0 中,对 graphdriver 插件的支持默认处于禁用状态,并且将
删除了 v28.0。环境变量
在 v27.0 中提供以重新启用该功能。此环境变量必须
在守护程序的环境中设置为非空值。DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS
环境变量以及
对 GraphDriver 插件的支持将在 v28.0 中删除。此功能的用户
建议改为将 Docker 引擎配置为使用 containerd 镜像存储和自定义快照程序DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS
API CORS 标头
在版本:v27.0 中已弃用 目标在版本:v28.0 中移除
Docker 守护程序的配置选项不安全,
,因此已弃用并计划删除。
错误地设置此选项可能会留下机会之窗
用于守护程序接受未经身份验证的跨域请求。api-cors-header
从 Docker Engine v27.0 开始,仍然可以设置此标志。
但是,除非环境变量也设置为非空值,否则它不会产生任何效果。DOCKERD_DEPRECATED_CORS_HEADER
此标志将在 v28.0 中完全删除。
这是授权插件和其他程序的重大更改 依赖于此选项从浏览器访问 Docker API。 如果您需要通过浏览器访问 API,请使用反向代理。
未经身份验证的 TCP 连接
在版本:v26.0 中已弃用在版本:v28.0 中要删除的目标
配置 Docker 守护程序以侦听 TCP 地址将需要强制
TLS 验证。此更改旨在通过防止
通过可能不安全的网络对 Docker 守护程序进行未经授权的访问。
此强制性 TLS 要求适用于除 之外的所有 TCP 地址。tcp://localhost
在版本 27.0 及更高版本中,指定 或 CLI 标志
如果守护程序还配置为接受通过 TCP 的远程连接,则会导致守护程序无法启动。
这也适用于 中的等效配置选项。--tls=false
--tlsverify=false
daemon.json
为了便于通过 TCP 远程访问 Docker 守护进程,您需要 实施 TLS 验证。这通过加密 transit 并提供相互身份验证机制。
对于环境,不需要远程守护程序访问, 我们建议将 Docker 守护程序绑定到 Unix 套接字。 对于需要远程访问且 TLS 加密不可行的守护进程, 您可能需要考虑使用 SSH 作为替代解决方案。
有关更多信息、帮助和分步说明,请访问 为 Docker 守护程序配置 TLS(或 SSH),请参阅保护 Docker 守护程序套接字。
Image inspect 中的 Container
和 ContainerConfig
字段
在版本:v25.0 中已废弃 在版本:v26.0 中要删除的目标
返回的 and 字段为
主要是经典(非 BuildKit)镜像生成器的实现细节。
这些字段不可移植,并且在使用
基于 BuildKit 的构建器(自 v23.0 起默认启用)。
这些字段在 v25.0 中已弃用,从 v26.0 开始将被省略。
如果需要配置镜像,可以从现场获取。Container
ContainerConfig
docker inspect
Config
弃用旧版 API
在版本:v25.0 中已废弃 在版本:v26.0 中要删除的目标
Docker 守护程序提供了一个版本化的 API,以便向后兼容旧的 客户。Docker 客户端可以进行 API 版本协商,选择最多的 守护程序支持的最新 API 版本(降级到旧版本的 API (如有必要)。API 版本协商是在 Docker v1.12.0 中引入的 (API 1.24) 的 API 版本,而在此之前的客户端使用的是固定的 API 版本。
Docker Engine 版本到 v25.0 为给定平台的稳定版本中包含的所有 API 版本提供支持。对于 Linux 上的 Docker 守护程序, 最早支持的 API 版本为 1.12(对应 Docker Engine v1.0.0),而对于 Windows 上的 Docker 守护进程,最早支持的 API 版本为 1.24(对应于 Docker Engine v1.12.0)。
支持旧版 API 版本(在当前版本上提供旧版 API 版本 的 Docker 引擎)的主要目的是提供与最近的 但仍支持客户端的版本,这是一种常见情况(Docker 守护程序可能会更新到最新版本,但并非所有客户端都是最新的 反之亦然)。支持之前的 API 版本(API 版本由 Docker Daemon 的 EOL 版本)是在“尽力而为”的基础上提供的。
使用旧 API 版本的情况很少见,并且支持旧版 API 涉及相当的复杂性(Docker 1.0.0 在 10 年前发布)。 因此,我们将开始弃用对旧版 API 的支持。
默认情况下,Docker Engine v25.0 会禁用低于 1.24 的 API 版本(将 Linux 和 Windows 守护程序之间支持的最低 API 版本)。什么时候 与使用低于 1.24 的 API 版本的客户端连接, 守护程序返回错误。以下示例配置 Docker CLI 使用 API 版本 1.23,这会产生错误:
DOCKER_API_VERSION=1.23 docker version
Error response from daemon: client version 1.23 is too old. Minimum supported API version is 1.24,
upgrade your client to a newer version
引入了一个环境变量 (),它允许
在守护程序中重新启用较旧的 API 版本。此环境变量必须
在守护程序的环境中设置(例如,通过 systemd 覆盖
文件),并将指定的
守护程序必须支持 API 版本(在 Linux 上为更高版本,在 Windows 上为更高版本)。DOCKER_MIN_API_VERSION
1.12
1.24
对低于 API 版本的支持将在 Docker 中永久删除
Engine v26 和支持的最低 API 版本将逐步提高
在之后的版本中。1.24
我们不建议根据环境
变量,但无法更新的特殊情况除外
旧客户端,并且必须支持这些客户端。DOCKER_MIN_API_VERSION
network Aliases 字段中的容器短 ID
已在 v25.0 版本中删除 在版本:v26.0 中移除
返回的字段包含容器 short
容器启动后的 ID。此行为在 v25.0 中已弃用,但
保留到下一个版本 v26.0。从该版本开始,该字段将仅包含通过 和 标志设置的别名。Aliases
docker inspect
Aliases
docker container create
docker run
--network-alias
包含容器名称的新字段(如果指定了容器名称),
主机名、网络别名以及容器短 ID 已
在 v25.0 中引入,应该使用它来代替 field。DNSNames
Aliases
IsAutomated 字段和 is-automated
docker 搜索
过滤器
在版本:v25.0 中已废弃 在版本:v26.0 中要删除的目标
该字段已被 Docker Hub 的搜索 API 弃用。
因此,镜像搜索中的字段将始终被设置
到,并且搜索 “is-automated=true” 不会得到
结果。is_automated
IsAutomated
false
该列已从 v25.0 的 default 和 output 中删除,相应的模板选项将在 v26.0 中删除。AUTOMATED
docker search
docker image search
IsAutomated
Logentries 日志记录驱动程序
已在 v24.0 版中废弃 在以下版本:v25.0 中删除
logentries 服务 SaaS 已于 2022 年 11 月 15 日关闭,呈现 此日志记录驱动程序无法正常工作。用户不应再使用此日志记录 驱动程序,并且该驱动程序已在 Docker 25.0 中删除。现有容器 使用此日志记录驱动程序将被迁移为使用 “local” 日志记录驱动程序 升级后。
守护进程的 OOM-score 调整
已在 v24.0 版中废弃 在以下版本:v25.0 中删除
添加了该选项以防止守护进程
OOM-killed 在其他进程之前终止。此选项主要作为
方便,因为将守护进程作为 systemd 单元运行还不常见。oom-score-adjust
让守护进程设置自己的限制不是最佳实践,而是 最好由启动守护进程的进程管理器来处理。
默认情况下,Docker v20.10 及更高版本不再调整守护进程的 OOM 分数, 而是将 OOM-score 设置为 systemd 单元 (OOMScoreAdjust),即 随包裹一起发货。
建议当前依赖此功能的用户调整 启动时,使用 systemd 或其他方式的守护进程的 OOM 分数 守护进程。
BuildKit 构建信息
已在 v23.0 版本中删除 在版本 v24.0 中删除
BuildKit v0.10.0 中引入了构建信息结构,并使用构建元数据生成,允许您查看所有源代码 (镜像、Git 存储库)及其确切的 versions 以及传递给内部版本的配置。这 如果生成了镜像配置,则信息也会嵌入到镜像配置中。
适用于 Linux 镜像的旧版生成器
在版本:v23.0 中已弃用
Docker v23.0 现在默认使用 BuildKit 构建 Linux 镜像,并使用 Buildx CLI 组件进行 .通过此更改,现在公开了所有高级功能
,以前只能通过子命令使用。docker build
docker build
docker buildx
安装 CLI 时会自动安装 Buildx 组件
使用我们的 OR 包,并提供静态链接的二进制文件
在 上,并通过 Docker Hub 上的 docker/buildx-bin
镜像。请参阅 Buildx 部分
有关安装 Buildx 组件的详细说明。docker
.deb
.rpm
download.docker.com
此版本标志着经典(“legacy”)弃用周期的开始 builder 的 Linux 镜像。经典构建器上不会进行任何主动开发 (错误修复除外)。BuildKit 开发始于五年前,留下了 自 Docker 18.09 以来处于“实验”阶段,并且已经是 Docker Desktop 的默认构建器。 虽然我们认为 BuildKit 在一般使用中是稳定的,但可能会有 行为的一些变化。如果您在使用 BuildKit 时遇到问题,我们鼓励 您可以在 GitHub 上的 BuildKit 问题跟踪器中报告问题{:target=“blank” rel=“noopener” class=”"}
用于构建 Windows 镜像的经典构建器
BuildKit 尚未(还)提供对构建 Windows 镜像的支持,并继续使用经典构建器来构建本机 Windows 镜像。
docker build
旧版构建器回退
在版本:v23.0 中已弃用
Docker v23.0 现在默认使用 BuildKit 来构建 Linux 镜像, 这需要 Buildx 组件使用 BuildKit 构建镜像。可能有 Buildx 组件不可用,并且 BuildKit 不能 使用。
为了平滑过渡到 BuildKit 作为默认构建器,Docker v23.0 在某些情况下具有自动回退功能,或者生成错误以提供帮助 用户来解决问题。
在用户未明确选择使用 BuildKit(即未设置)的情况下,CLI 会自动回退到经典的
builder 中,但会打印弃用警告:DOCKER_BUILDKIT=1
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
如果使用静态二进制文件安装 CLI,则可能会出现这种情况。
并且 Buildx 组件未安装或未正确安装。此回退
将在将来的版本中删除,因此我们建议安装 Buildx 组件并使用 BuildKit 进行构建,或者选择退出将 BuildKit 与 .docker
DOCKER_BUILDKIT=0
如果您选择使用 BuildKit (),但 Buildx 组件
缺失,则会打印错误,并且命令失败:DOCKER_BUILDKIT=1
docker build
ERROR: BuildKit is enabled but the buildx component is missing or broken.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
我们建议安装 Buildx 组件以继续使用 BuildKit 进行构建,但用户也可以
取消设置环境变量以回退到旧版构建器,
或选择退出使用 BuildKit 和 .DOCKER_BUILDKIT
DOCKER_BUILDKIT=0
请注意,经典构建器已弃用,因此自动回退和选择退出使用 BuildKit 将不再 在未来版本中可能。
CentOS 7 和 RHEL 7 上的 Btrfs 存储驱动程序
在版本:v23.0 中删除
CentOS 和 RHEL 上的存储驱动程序作为技术预览提供
由 CentOS 和 RHEL 提供,但自 Red Hat Enterprise Linux 7.4 版本起已被弃用,
并在 CentOS 8 和 RHEL 8 中删除。CentOS 上 storage driver 的用户
建议迁移到其他存储驱动程序,例如 ,其中
现在是默认存储驱动程序。Docker 23.0 继续提供存储驱动程序,以允许用户迁移到替代驱动程序。下一个版本
的 Docker 将不再提供此驱动程序。btrfs
btrfs
overlay2
btrfs
支持加密的 TLS 私钥
在版本:v20.10 中已弃用
在版本:v23.0 中删除
使用加密的 TLS 私有密钥已被弃用并已删除。 Golang 已弃用对旧版 PEM 加密(如 RFC 1423 中指定)的支持,因为它不安全 设计(请参阅 https://go-review.googlesource.com/c/go/+/264159)。
此功能允许使用带有提供密码的加密私钥, 但没有提供额外的安全性,因为已知加密已破解, 密钥位于文件系统中密码的旁边。推荐用户 解密私钥,并将其存储在未加密状态以继续使用它。
Kubernetes 堆栈和上下文支持
在版本:v20.10 中已移除在版本:v23.0 中移除
在 Kubernetes 上弃用 Compose 后,
和 命令中对 Kubernetes 的支持已从
CLI 以及与此功能相关的选项现在要么被忽略,要么可能被忽略
产生错误。stack
context
以下命令行标志已从子命令中删除:docker context
--default-stack-orchestrator
- Swarm 现在是堆栈的唯一(也是默认)编排器。--kubernetes
- Kubernetes 端点不能再存储在 中。docker context
--kubeconfig
- 不再支持将上下文导出为 kubeconfig 文件。
子命令生成的输出不再包含
有关新上下文的信息和终端节点。docker context inspect
StackOrchestrator
Kubernetes
以下命令行标志已从子命令中删除:docker stack
--kubeconfig
- 不再支持使用 kubeconfig 文件作为上下文。--namespace
- 不再支持为堆栈配置 Kubernetes 命名空间。--orchestrator
- Swarm 现在是堆栈的唯一(也是默认)编排器。
、 和 环境
变量以及 CLI 配置文件中的选项将不再使用,并被忽略。DOCKER_STACK_ORCHESTRATOR
DOCKER_ORCHESTRATOR
KUBECONFIG
stackOrchestrator
~/.docker/config.json
从不合规的镜像注册表中提取镜像
在版本:v20.10 中已弃用
Docker Engine v20.10 及更高版本包含优化,以验证 本地镜像缓存需要在拉取前更新,从而阻止 Docker Engine 防止发出不必要的 API 请求。这些优化需要容器 image 注册表以符合 Open Container Initiative 分发规范。
虽然大多数注册管理机构都符合规范,但我们遇到了一些注册管理机构
不合规,导致 TO 失败。docker pull
作为临时解决方案,Docker Engine v20.10 包括一个回退机制,用于
允许在使用不合规的注册表时正常运行。一个
在这种情况下,将打印警告消息:docker pull
WARNING Failed to pull manifest by the resolved digest. This registry does not
appear to conform to the distribution registry specification; falling back to
pull by tag. This fallback is DEPRECATED, and will be removed in a future
release.
添加回退功能是为了允许用户将其镜像迁移到合规的 Registry 的 registry 进行注册,或者使这些 registry 变得合规。
请注意,此回退仅解决 上的故障。其他命令
例如 ,或者使用 WILL continue
失败。docker pull
docker stack deploy
containerd
鉴于这些 registry 仍然破坏了其他功能,我们考虑 this fallback 是一个临时解决方案,并将在即将到来的 主要版本。
Windows 上的 Linux 容器 (LCOW)(实验性)
在版本:v20.10 中已移除在版本:v23.0 中移除
引入了在 Windows 上运行 Linux 容器 (LCOW) 的实验性功能 作为 Docker 17.09 中的技术预览版。虽然之后进行了许多改进 它的推出,该功能从未达到完整,开发已经 现在停止,转而在 WSL2 的 Linux 上原生运行 Docker。
建议希望在 Windows 主机上运行 Linux 工作负载的开发人员改用 Docker Desktop 和 WSL2。
cgroups v1 的 BLKIO 权重选项
在版本:v20.10 中已弃用
指定 blkio 权重 ( 和 )
现在在使用 cgroups v1 时标记为已弃用,因为相应的功能
在 Linux 内核 v5.0 及更高版本中删除。
使用 cgroups v2 时,这些选项是使用 'io.weight 实现的。docker run --blkio-weight
docker run --blkio-weight-device
--blkio-weight
内核内存限制
在版本:v20.10 中已移除在版本:v23.0 中移除
不再支持指定内核内存限制 ()
因为 Linux 内核在 v5.4 中弃用了 kmem.limit_in_bytes
。
OCI 运行时规范现在标记此选项(以及 )
显示为 “NOT RECOMMENDED”,
和 OCI 运行时(例如)不再支持此选项。docker run --kernel-memory
--kernel-memory-tcp
runc
Docker API v1.42 及更高版本现在在设置此选项时忽略此选项。旧版本的 API 继续接受该选项,但根据使用的 OCI 运行时,可能会 不生效。
注意
虽然 OCI 运行时规范尚未在 Docker 中弃用,但它也 弃用了该选项。当使用 as 时 runtime 时,此选项无效。Linux 内核没有明确地 弃用此功能,问题中有一个跟踪票证 tracker 来确定是否应恢复此选项,或者此选项是否为 监督 Linux 内核维护者(参见 opencontainers/runc#3174)。
memory.kmem.tcp.limit_in_bytes
runc
runc
该选项仅支持 cgroups v1, 并且在使用 cgroups v2 运行的安装中不可用。此选项为 仅受 API 支持,不在命令行上公开。
memory.kmem.tcp.limit_in_bytes
docker
使用集群存储的经典 Swarm 和 Overlay 网络
在版本:v20.10 中已移除在版本:v23.0 中移除
独立(“经典”)Swarm 已被弃用,随之而来的是 overlay
使用外部键/值存储的网络。相应的 、 和 daemon 选项已被删除。--cluster-advertise
--cluster-store
--cluster-store-opt
支持旧版 ~/.dockercfg
配置文件
在版本:v20.10 中已移除在版本:v23.0 中移除
直到 v1.7.0 的 Docker CLI 都使用该文件来存储凭据
向注册表进行身份验证后 ()。Docker v1.7.0 取代了这个
文件替换为新的 CLI 配置文件,该文件位于 .什么时候
实现新的配置文件时,旧文件(和文件格式)被保留
作为后备,以帮助现有用户迁移到新文件。~/.dockercfg
docker login
~/.docker/config.json
鉴于旧文件格式鼓励不安全的凭据存储 (凭证以未加密方式存储),并且此后没有 CLI 版本 Docker v1.7.0 已经创建了这个文件,支持这个文件,它的格式有 已被删除。
实验性 CLI 功能的配置选项
在版本:v19.03 中已弃用
在版本:v23.0 中删除
CLI 配置文件中的环境变量和相应字段已弃用。实验性功能包括
,并且这些配置选项不再起作用。DOCKER_CLI_EXPERIMENTAL
experimental
从 v23.0 开始,Docker CLI 不再为客户端打印
,并且该字段已从 JSON 中删除
格式。Experimental
docker version
CLI 插件支持
在版本:v20.10 中已弃用
CLI 插件 API 现在标记为已弃用。
Dockerfile 旧版 ENV 名称值
语法
在版本:v20.10 中已弃用
Dockerfile 指令允许使用 或 设置值。后一种 () 形式可能不明确,例如,
下面定义了一个值为 ,
但可能打算设置三个环境变量:ENV
ENV name=value
ENV name value
ENV name value
ONE
"TWO= THREE=world"
ENV ONE TWO= THREE=world
此格式也不允许在 Dockerfile 的单行中设置多个环境变量。ENV
不建议使用该语法,将来可能会将其删除
释放。鼓励用户更新其 Dockerfile 以使用语法,例如:ENV name value
ENV name=value
ENV ONE="" TWO="" THREE="world"
docker build --stream
标志(实验性)
已在 v20.10 版本中删除 在版本:v20.10 中删除
Docker v17.07 引入了一个实验性标志,该标志上
允许将 build-context 增量发送到守护进程,而不是
无条件地发送整个 build-context。--stream
docker build
此功能已作为 BuildKit 的一部分重新实现,它使用流式处理
默认情况下,该选项将在使用 Classic Builder 时被忽略,
而是打印弃用警告。--stream
对于想要使用此功能的用户,建议通过设置
环境变量或通过守护程序或 CLI 配置
文件。DOCKER_BUILDKIT=1
fluentd-async-connect
log opt
在版本:v20.10 中已弃用
fluentd 日志记录驱动程序的选项已弃用,取而代之的是 --log-opt fluentd-async
。
如果使用 old 选项,则守护进程日志中会记录弃用消息:--log-opt fluentd-async-connect
fluent#New: AsyncConnect is now deprecated, use Async instead
鼓励用户今后使用该选项作为支持
,将在将来的发行版中删除。fluentd-async
使用镜像清单 v2 架构 1 推送和拉取
在版本:v19.03 中已弃用
在版本:v26.0 中默认禁用
版本中删除的目标:v27.0
镜像清单 v2 架构 1 和“Docker 镜像 v1”格式已弃用,取而代之的是 v2 架构 2 和 OCI 镜像规范格式。
不应再使用这些旧格式,建议用户 更新镜像以使用当前格式,或升级到更新镜像。 从 Docker v26.0 开始,默认情况下会禁用这些镜像,并且 在尝试拉取镜像时生成错误:
$ docker pull ubuntu:10.04
Error response from daemon:
[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.
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.
More information at https://docs.docker.com/go/deprecated-image-specs/
环境变量 () 是
在 Docker v26.0 中添加,允许重新启用对这些镜像格式的支持
在守护进程中。此环境变量必须在
守护程序的环境(例如,通过 systemd 覆盖文件)。
支持环境变量
将在 Docker v27.0 中删除,之后此功能将被永久删除。DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE
DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE
docker engine
子命令
在版本:v19.03 中已弃用
在版本:v20.10 中删除
、 和 提供了升级 Docker Community 引擎的替代安装方法
到 Docker Enterprise,使用 Docker Engine 的基于镜像的发行版。docker engine activate
docker engine check
docker engine update
此功能仅在 Linux 上可用,并且仅在本地节点上执行时可用。
鉴于此功能的局限性,以及该功能未得到广泛采用,
子命令将被删除,以便通过
标准包管理器。docker engine
顶级 docker deploy
子命令(实验性)
在版本:v19.03 中已弃用
在版本:v20.10 中删除
顶级命令(使用 “Docker Application Bundle”
(.dab) 文件格式在 Docker 1.13 中作为实验性功能引入 /
17.03 中,但被使用子命令的 Docker Compose 文件支持所取代。docker deploy
docker stack deploy
使用“DAB”文件的 Docker 堆栈部署
(实验性)
在版本:v19.03 中已弃用
在版本:v20.10 中删除
没有对此功能进行任何开发,也没有积极使用该文件
格式、对 DAB 文件格式和顶级命令的支持
(在 19.03 中默认隐藏)将被删除,以支持使用 Compose Files。docker deploy
docker stack deploy
支持 overlay2.override_kernel_check
存储选项
在版本:v19.03 中已移除在版本:v24.0 中移除
此守护程序配置选项禁用了所使用的 Linux 内核版本检查 来检测内核是否支持具有多个较低目录的 OverlayFS,即 overlay2 存储驱动程序需要。从 Docker v19.03.7 开始, 检测功能得到改进,不再依赖于内核版本,因此 选项。
AuFS 存储驱动程序
在版本:v19.03 中已移除在版本:v24.0 中移除
存储驱动程序已被弃用,取而代之的是 ,并且已被
在 Docker Engine v24.0 中删除。存储驱动程序的用户必须
在升级之前迁移到其他存储驱动程序,例如
到 Docker Engine v24.0。aufs
overlay2
aufs
overlay2
存储驱动程序有助于在没有
支持 OverlayFS,例如 Ubuntu 14.04 LTS,它最初随
一个 3.14 内核。aufs
现在,Ubuntu 14.04 不再是 Docker 支持的发行版,并且可供所有支持的发行版使用(因为它们要么在内核 4.x 上,要么具有
支持向后移植的多个 lowerdirs),没有理由继续
维护存储驱动程序。overlay2
aufs
旧版覆盖存储驱动程序
已在 v18.09 版本中删除 在版本:v24.0 中移除
存储驱动程序已弃用,取而代之的是存储
驱动程序,它具有 的所有优点,而没有其限制(过度的
inode 消耗)。旧版存储驱动程序已在
Docker 引擎 v24.0。在升级到 Docker Engine v24.0 之前,存储驱动程序的用户应迁移到存储驱动程序。overlay
overlay2
overlay
overlay
overlay
overlay2
传统存储驱动程序允许使用 overlayFS 支持的文件系统
在低于 v4.x 的内核上。现在所有受支持的发行版都能够运行(因为它们要么在内核 4.x 上,要么支持多个 lowerdirs
backported),没有理由继续维护 storage driver。overlay
overlay2
overlay
Device mapper 存储驱动程序
在版本:v18.09 中已弃用 在版本:v23.0 中默认禁用 在版本:v25.0 中删除
存储驱动程序已被弃用,取而代之的是 ,并且具有
已在 Docker Engine v25.0 中删除。存储驱动程序的用户
在升级之前,必须迁移到其他存储驱动程序,例如
到 Docker Engine v25.0。devicemapper
overlay2
devicemapper
overlay2
存储驱动程序有助于在较旧的 (3.x) 内核上运行 Docker
不支持其他存储驱动程序(例如 overlay2 或 btrfs)。devicemapper
现在,所有支持的发行版都添加了对 的支持(原样
要么在内核 4.x 上,要么支持向后移植多个 lowerdir),则
没有理由继续维护 Storage 驱动程序。overlay2
devicemapper
在引擎标签中使用保留命名空间
在版本:v18.06 中已废弃
在版本版中删除:v20.10
命名空间、 和 引擎标签
总是被记录为保留,但从未有任何执行。com.docker.*
io.docker.*
org.dockerproject.*
现在,使用这些命名空间将导致引擎日志中出现警告,以阻止其 use,并在 v20.10 及更高版本中出错。
--disable-legacy-registry
override 守护程序选项
在版本:v17.12 中禁用
在版本版中删除:v19.03
该标志在 Docker 17.12 中被禁用,并将打印
使用时出错。要打印此错误,标志本身仍然存在,
但隐藏了。该标志已在 Docker 19.03 中删除。--disable-legacy-registry
与 V1 注册表交互
在版本:v17.06 中默认禁用
在版本版中删除:v17.12
版本 1.8.3 添加了一个标志 (),该标志可防止
来自 、 的 Docker 守护程序和针对 v1 的操作
登记处。虽然默认情况下处于启用状态,但这表示要弃用
v1 协议。--disable-legacy-registry=false
pull
push
login
在 1.13 中,删除了对公共注册表的 v1 协议的支持。任何 使用 v1 的镜像配置应更新为使用 v2 注册表镜像。
从 Docker 17.12 开始,已删除对 V1 注册表的支持,并且该标志不能再使用,并且将无法
设置后启动。--disable-legacy-registry
dockerd
异步服务创建和
服务更新
为默认值
Deprecated 在 Release: v17.05 中
在版本:v17.10 中默认禁用
Docker 17.05 添加了一个可选选项,用于使 和 同步工作。这
选项将在 Docker 17.10 中默认启用,此时该标志可用于使用以前的(异步)行为。--detach=false
docker service create
docker service update
--detach
此选项的默认值也将在 Docker 17.10 中相应地更改。docker service rollback
docker service scale
dockerd
上的 -g
和 --graph
标志
Deprecated 在 Release: v17.05 中
在版本版中删除:v23.0
or 命令的 or 标志为
用于指示存储持久数据和资源的目录
配置,并已替换为更具描述性的标志。这些标记在 v17.05 中已弃用和隐藏,并在 v23.0 中删除。-g
--graph
dockerd
docker daemon
--data-root
NetworkSettings 中的顶级网络属性
Deprecated 版本:v1.13.0
版本中删除的目标:v17.12
检查容器时,包含顶级信息
关于默认 (“bridge”) 网络;NetworkSettings
EndpointID
和。Gateway
GlobalIPv6Address
GlobalIPv6PrefixLen
IPAddress
IPPrefixLen
IPv6Gateway
MacAddress
这些属性已弃用,取而代之的是 中的每个网络属性。这些属性已在
Docker 1.9 的 1.9 版本,但为了向后兼容而保留。NetworkSettings.Networks
有关详细信息,请参阅 #17538 信息。
/
images/json
端点的 filter 选项
Deprecated 版本:v1.13.0
在版本版中删除:v20.10
按引用筛选镜像列表的选项(name 或 name:tag)
现在实现为名为 .filter
reference
repository:shortid
镜像引用
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
引用镜像的语法很少使用,
与标签引用冲突,并且可能与摘要引用混淆。repository:shortid
已删除对引用镜像的符号的支持
在 Docker 17.12 中。repository:shortid
docker daemon
子命令
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
守护进程被移动到单独的二进制 () 中,应该改用它。dockerd
引擎标签中值冲突的重复键
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
当设置值冲突的重复键时,会产生错误,并且守护进程 将无法启动。
Dockerfile 中的 MAINTAINER
Deprecated 版本:v1.13.0
MAINTAINER
是一种早期的非常有限的形式,应该使用它。LABEL
没有版本的 API 调用
Deprecated 版本:v1.13.0
版本中删除的目标:v17.12
应为所有 API 调用提供 API 版本,以确保与
未来的 Engine 版本。例如,您现在必须请求 ,而不仅仅是请求 URL 。/containers/json
/v1.25/containers/json
不支持 overlay/overlay2 d_type
备份文件系统
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
如果备份
文件系统不支持 .例如,如果 XFS 使用 option 进行格式化,则 XFS 不支持。d_type
d_type
ftype=0
已删除对这些设置的支持,Docker v23.0 及更高版本现在无法
start,当尝试在
backing 文件系统。overlay2
overlay
d_type
有关详细信息,请参阅 #27358。
docker search
上的 --automated
和 --stars
标志
在版本:v1.12.0 中已弃用
在版本版中删除:v20.10
和 选项已弃用。
使用 and 代替。docker search --automated
docker search --stars
docker search --filter=is-automated=<true|false>
docker search --filter=stars=...
--help
的 -h
简写
废弃于版本: v1.12.0
版本中删除目标:v17.09
简写 () 比在 Linux 上更不常见,因此不能使用
在所有子命令上(由于它与 / 在 )。因此,速记没有印在
“usage” 子命令的输出,也没有记录,现在标记为 “deprecated”。-h
--help
-h
--hostname
docker create
-h
docker login
上的 -e
和 --email
标志
在版本:v1.11.0 中已弃用
在版本版中删除:v17.06
如果给定的用户名不存在,则不再自动向目标注册表注册帐户。由于此更改,email 标志不再是必需的,并且将被弃用。docker login
docker run
上 --security-opt
标志的分隔符 (:
)
在版本:v1.11.0 中已弃用
版本中删除的目标:v17.06
该标志不再使用冒号分隔符 () 来划分键和值,它使用等号 () 与其他类似标志保持一致,例如 .--security-opt
:
=
--storage-opt
API 中的事件字段不明确
在 v1.10.0 版中已弃用
字段 和 events API 中的字段已被弃用,取而代之的是更丰富的结构。
有关新格式,请参阅事件 API 文档。ID
Status
From
docker 标记
上的 -f
标志
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
为了使各种命令之间的标记保持一致,该命令上的标志已被弃用。不再需要指定将标记从一个镜像移动到另一个镜像。如果缺少标志并且指定的标记已在使用中,则也不会生成错误。docker
-f
docker tag
-f
docker
-f
API 容器启动时的 HostConfig
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
不推荐使用 to 来传递 to 以支持
在容器创建时定义它 ()。HostConfig
POST /containers/{name}/start
POST /containers/create
docker ps
上的 --before
和 --since
标志
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
和 选项已弃用。
使用 and 代替。docker ps --before
docker ps --since
docker ps --filter=before=...
docker ps --filter=since=...
特定于驱动程序的日志标记
废弃于版本: v1.9.0
在版本版中删除:v1.12.0
日志标签现在以标准方式跨不同的日志记录驱动程序生成。
因此,特定于驱动程序的日志标记选项 和 已被弃用,取而代之的是 generic 选项。syslog-tag
gelf-tag
fluentd-tag
tag
$ docker --log-driver=syslog --log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"
Docker 内容信任 ENV 密码短语变量名称更改
废弃于版本: v1.9.0
在版本版中删除:v1.12.0
从 1.9 开始,Docker Content Trust Offline 密钥已重命名为 Root key,Tagging key 已重命名为 Repository key。由于此次重命名,我们还更改了相应的环境变量
- DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE 现在被命名为 DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE
- DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE 现在命名为 DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
/containers/(id 或 name)/copy
端点
在 1.8.0 版中已弃用
在版本版中删除:v1.12.0
端点已弃用,取而代之的是 。/containers/(id or name)/copy
/containers/(id or name)/archive
LXC 内置执行驱动程序
在 1.8.0 版中已弃用
在版本版中删除:v1.10.0
已删除内置的 LXC 执行驱动程序、lxc-conf 标志和 API 字段。
旧命令行选项
在 1.8.0 版中已弃用
在版本版中删除:v1.10.0
标志 和 已弃用。请改用单独的二进制文件。-d
--daemon
dockerd
某些命令行选项的以下单破折号 () 变体
已弃用并替换为双破折号选项 ():-opt
--opt
docker attach -nostdin
docker attach -sig-proxy
docker build -no-cache
docker build -rm
docker commit -author
docker commit -run
docker events -since
docker history -notrunc
docker images -notrunc
docker inspect -format
docker ps -beforeId
docker ps -notrunc
docker ps -sinceId
docker rm -link
docker run -cidfile
docker run -dns
docker run -entrypoint
docker run -expose
docker run -link
docker run -lxc-conf
docker run -n
docker run -privileged
docker run -volumes-from
docker search -notrunc
docker search -stars
docker search -t
docker search -trusted
docker tag -force
以下双破折号选项已弃用,没有替代选项:
docker run --cpuset
docker run --networking
docker ps --since-id
docker ps --before-id
docker search --trusted
在 1.5.0 版中已弃用
在版本版中删除:v1.12.0
删除了单破折号 (),取而代之的是双破折号-help
--help
dockerd
上的 --api-enable-cors
标志
废弃于版本: v1.6.0
在版本版中删除:v17.09
该标志自 v1.6.0 起已弃用。请改用 flag。--api-enable-cors
--api-cors-header
docker commit
上的 --run
标志
在 v0.10.0 版中已废弃
在版本版中删除:v1.13.0
命令的标志(及其简短版本)已被弃用
允许传递命令的标志。--run
docker commit
-run
--changes
Dockerfile
docker import
中的三个参数形式
Deprecated 在 Release: v0.6.7 中
在版本版中删除:v1.12.0
该命令格式自 2013 年 11 月起已弃用。它不再受支持。docker import
file|URL|- [REPOSITORY [TAG]]