已弃用的 Docker Engine 功能
本页概述了 Engine 中已弃用的功能。变化 ,并且不包括支持的 (Linux) 发行版。要了解 有关终止对 Linux 发行版的支持,请参阅发行说明。
功能弃用策略
随着对 Docker 的更改,有时现有功能可能需要 被删除或替换为新功能。删除现有功能之前 它在文档中被标记为“已弃用”,并在 Docker 中保留 至少一个稳定版本,除非另有明确说明。在那之后 它可能会被删除。
用户应注意每个版本的已弃用功能列表 并计划从这些功能迁移,并(如果适用)朝着 替换功能。
已弃用的引擎功能
下表概述了已弃用功能的当前状态:
已弃用:该功能被标记为“已弃用”,不应再使用。
该功能可能会在未来发行版中被删除、禁用或更改行为。 “Deprecated” 列包含标记该功能的发行版 已弃用,而 “Remove” 列包含一个暂定版本,其中 该功能将被删除。如果 “Remove” 列中不包含任何版本,则 发布尚未决定。
已删除:功能已删除、禁用或隐藏。
有关详细信息,请参阅链接的部分。某些功能已“软”弃用, 这意味着它们仍然有效以实现向后兼容性,并且 允许用户迁移到替代项。在这种情况下,可能会发出警告 打印出来,用户不应依赖此功能。
镜像检查中的非标准字段
在版本:v27.0 中已弃用 目标在版本:v28.0 中移除
这Config
字段返回,如docker image inspect
(由
这GET /images/{name}/json
API 端点)返回其他字段,这些字段是
不是镜像配置的一部分,也不是 Docker 镜像规范和 OCI 镜像规范的一部分。
这些字段永远不会设置(并且始终返回类型的默认值), 但在留空时,响应中不会省略。由于这些字段不是 旨在作为镜像配置响应的一部分,它们已被弃用, 并将在下一个版本的 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。一DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS
环境变量
在 v27.0 中提供以重新启用该功能。此环境变量必须
在守护程序的环境中设置为非空值。
这DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS
环境变量以及
对 GraphDriver 插件的支持将在 v28.0 中删除。此功能的用户
建议改为将 Docker 引擎配置为使用 containerd 镜像存储和自定义快照程序
API CORS 标头
在版本:v27.0 中已弃用 目标在版本:v28.0 中移除
这api-cors-header
docker 守护进程的配置选项不安全,则
,因此已弃用并计划删除。
错误地设置此选项可能会留下机会之窗
用于守护程序接受未经身份验证的跨域请求。
从 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 及更高版本中,指定--tls=false
或--tlsverify=false
CLI 标志
如果守护程序还配置为接受通过 TCP 的远程连接,则会导致守护程序无法启动。
这也适用于daemon.json
.
为了便于通过 TCP 远程访问 Docker 守护进程,您需要 实施 TLS 验证。这通过加密 transit 并提供相互身份验证机制。
对于环境,不需要远程守护程序访问, 我们建议将 Docker 守护程序绑定到 Unix 套接字。 对于需要远程访问且 TLS 加密不可行的守护进程, 您可能需要考虑使用 SSH 作为替代解决方案。
有关更多信息、帮助和分步说明,请访问 为 Docker 守护程序配置 TLS(或 SSH),请参阅保护 Docker 守护程序套接字。
Container
和ContainerConfig
镜像检查中的字段
在版本:v25.0 中已废弃 在版本:v26.0 中要删除的目标
这Container
和ContainerConfig
字段docker inspect
是
主要是经典(非 BuildKit)镜像生成器的实现细节。
这些字段不可移植,并且在使用
基于 BuildKit 的构建器(自 v23.0 起默认启用)。
这些字段在 v25.0 中已弃用,从 v26.0 开始将被省略。
如果需要对镜像进行镜像配置,可以从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
环境变量 (DOCKER_MIN_API_VERSION
),它允许
在守护程序中重新启用较旧的 API 版本。此环境变量必须
在守护程序的环境中设置(例如,通过 systemd 覆盖
文件),并将指定的
守护程序 (1.12
或更高版本,或者1.24
或更高版本)。
支持低于1.24
将在 Docker 中永久删除
Engine v26 和支持的最低 API 版本将逐步提高
在之后的版本中。
我们不建议根据DOCKER_MIN_API_VERSION
环境
变量,但无法更新的特殊情况除外
旧客户端,并且必须支持这些客户端。
network Aliases 字段中的容器短 ID
已在 v25.0 版本中删除 在版本:v26.0 中移除
这Aliases
字段返回者docker inspect
包含容器 Short
容器启动后的 ID。此行为在 v25.0 中已弃用,但
保留到下一个版本 v26.0。从该版本开始,Aliases
字段将仅包含通过docker container create
和docker run
旗--network-alias
.
新字段DNSNames
包含容器名称(如果指定了容器名称),
主机名、网络别名以及容器短 ID 已
在 v25.0 中引入,应该使用它来代替Aliases
田。
IsAutomated 字段和is-automated
筛选docker search
在版本:v25.0 中已废弃 在版本:v26.0 中要删除的目标
这is_automated
字段已被 Docker Hub 的搜索 API 弃用。
因此,IsAutomated
镜像搜索中的字段将始终处于设置
自false
将来,搜索 “is-automated=true” 将不会产生
结果。
这AUTOMATED
列已从默认docker search
和docker image search
v25.0 中的输出,以及相应的IsAutomated
模板选项将在 v26.0 中删除。
Logentries 日志记录驱动程序
已在 v24.0 版中废弃 在以下版本:v25.0 中删除
logentries 服务 SaaS 已于 2022 年 11 月 15 日关闭,呈现 此日志记录驱动程序无法正常工作。用户不应再使用此日志记录 驱动程序,并且该驱动程序已在 Docker 25.0 中删除。现有容器 使用此日志记录驱动程序将被迁移为使用 “local” 日志记录驱动程序 升级后。
守护进程的 OOM-score 调整
已在 v24.0 版中废弃 在以下版本:v25.0 中删除
这oom-score-adjust
选项以防止守护进程
OOM-killed 在其他进程之前终止。此选项主要作为
方便,因为将守护进程作为 systemd 单元运行还不常见。
让守护进程设置自己的限制不是最佳实践,而是 最好由启动守护进程的进程管理器来处理。
默认情况下,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
子命令。
安装docker
命令行界面
使用我们的.deb
或.rpm
包和静态链接的Binaries
两者都在download.docker.com
,并通过docker/buildx-bin
镜像在 Docker Hub 上。请参阅 Buildx 部分
有关安装 Buildx 组件的详细说明。
此版本标志着经典(“legacy”)弃用周期的开始 builder 的 Linux 镜像。经典构建器上不会进行任何主动开发 (错误修复除外)。BuildKit 开发始于五年前,留下了 自 Docker 18.09 以来处于“实验”阶段,并且已经是 Docker Desktop 的默认构建器。 虽然我们认为 BuildKit 在一般使用中是稳定的,但可能会有 行为的一些变化。如果您在使用 BuildKit 时遇到问题,我们鼓励 您可以在 GitHub 上的 BuildKit 问题跟踪器中报告问题{:target=“blank” rel=“noopener” class=”"}
用于构建 Windows 镜像的经典构建器
BuildKit 尚未提供对构建 Windows 镜像的支持,并且
docker build
继续使用经典构建器构建原生 Windows 镜像。
旧版构建器回退
在版本:v23.0 中已弃用
Docker v23.0 现在默认使用 BuildKit 来构建 Linux 镜像, 这需要 Buildx 组件使用 BuildKit 构建镜像。可能有 Buildx 组件不可用,并且 BuildKit 不能 使用。
为了平滑过渡到 BuildKit 作为默认构建器,Docker v23.0 在某些情况下具有自动回退功能,或者生成错误以提供帮助 用户来解决问题。
在用户未明确选择使用 BuildKit 的情况下(即DOCKER_BUILDKIT=1
未设置),CLI 会自动回退到经典的
builder 中,但会打印弃用警告:
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/
如果docker
CLI 使用静态Binaries
并且 Buildx 组件未安装或未正确安装。此回退
将在未来的版本中删除,因此我们建议安装 Buildx 组件并使用 BuildKit 进行构建,或者选择退出使用 BuildKit 与DOCKER_BUILDKIT=0
.
如果您选择使用 BuildKit (DOCKER_BUILDKIT=1
),但 Buildx 组件
缺失,则会打印错误,并且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 进行构建,但用户也可以
取消设置DOCKER_BUILDKIT
环境变量回退到旧版构建器,
或选择退出使用 BuildKitDOCKER_BUILDKIT=0
.
请注意,经典构建器已弃用,因此自动回退和选择退出使用 BuildKit 将不再 在未来版本中可能。
CentOS 7 和 RHEL 7 上的 Btrfs 存储驱动程序
在版本:v23.0 中删除
这btrfs
CentOS 和 RHEL 上的 storage 驱动程序作为技术预览提供
由 CentOS 和 RHEL 提供,但自 Red Hat Enterprise Linux 7.4 版本起已被弃用,
并在 CentOS 8 和 RHEL 8 中删除。的btrfs
CentOS 上的 storage 驱动程序
建议迁移到其他存储驱动程序,例如overlay2
哪
现在是默认存储驱动程序。Docker 23.0 继续提供btrfs
storage 驱动程序,以允许用户迁移到备用驱动程序。下一个版本
的 Docker 将不再提供此驱动程序。
支持加密的 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 的stack
和context
命令已从
CLI 以及与此功能相关的选项现在要么被忽略,要么可能被忽略
产生错误。
以下命令行标志已从docker context
子命令:
--default-stack-orchestrator
- Swarm 现在是堆栈的唯一(也是默认)编排器。--kubernetes
- Kubernetes 端点不能再存储在docker context
.--kubeconfig
- 不再支持将上下文导出为 kubeconfig 文件。
由docker context inspect
子命令不再包含
信息StackOrchestrator
和Kubernetes
endpoints 的新上下文。
以下命令行标志已从docker stack
子命令:
--kubeconfig
- 不再支持使用 kubeconfig 文件作为上下文。--namespace
- 不再支持为堆栈配置 Kubernetes 命名空间。--orchestrator
- Swarm 现在是堆栈的唯一(也是默认)编排器。
这DOCKER_STACK_ORCHESTRATOR
,DOCKER_ORCHESTRATOR
和KUBECONFIG
环境
变量以及stackOrchestrator
选项中的~/.docker/config.json
CLI 配置文件不再使用,并被忽略。
从不合规的镜像注册表中提取镜像
在版本:v20.10 中已弃用
Docker Engine v20.10 及更高版本包含优化,以验证 本地镜像缓存需要在拉取前更新,从而阻止 Docker Engine 防止发出不必要的 API 请求。这些优化需要容器 image 注册表以符合 Open Container Initiative 分发规范。
虽然大多数注册管理机构都符合规范,但我们遇到了一些注册管理机构
不合规,从而导致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 变得合规。
请注意,此回退仅解决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 权重 (docker run --blkio-weight
和docker run --blkio-weight-device
)
现在在使用 cgroups v1 时标记为已弃用,因为相应的功能
在 Linux 内核 v5.0 及更高版本中删除。
使用 cgroups v2 时,--blkio-weight
选项是使用 'io.weight.
内核内存限制
在版本:v20.10 中已移除在版本:v23.0 中移除
指定内核内存限制 (docker run --kernel-memory
) 不再受支持
因为已弃用 Linux 内核kmem.limit_in_bytes
在 v5.4 中.
OCI 运行时规范现在标记了此选项(以及--kernel-memory-tcp
)
显示为 “NOT RECOMMENDED”,
和 OCI 运行时,例如runc
不再支持此选项。
Docker API v1.42 及更高版本现在在设置此选项时忽略此选项。旧版本的 API 继续接受该选项,但根据使用的 OCI 运行时,可能会 不生效。
注意
虽然 OCI 运行时规范尚未在 Docker 中弃用,但它也 废弃了
memory.kmem.tcp.limit_in_bytes
选择。使用runc
如 runtime 时,此选项无效。Linux 内核没有明确地 弃用此功能,并且runc
问题 tracker 来确定是否应恢复此选项,或者此选项是否为 监督 Linux 内核维护者(参见 opencontainers/runc#3174)。这
memory.kmem.tcp.limit_in_bytes
选项仅支持 cgroups v1, 并且在使用 cgroups v2 运行的安装中不可用。此选项为 仅受 API 支持,未在docker
命令行。
使用集群存储的经典 Swarm 和 Overlay 网络
在版本:v20.10 中已移除在版本:v23.0 中移除
独立(“经典”)Swarm 已被弃用,随之而来的是 overlay
使用外部键/值存储的网络。相应的--cluster-advertise
,--cluster-store
和--cluster-store-opt
daemon 选项已删除。
对旧版的支持~/.dockercfg
配置文件
在版本:v20.10 中已移除在版本:v23.0 中移除
直到 v1.7.0 的 Docker CLI 都使用~/.dockercfg
file 来存储凭证
对注册表进行身份验证 (docker login
).Docker v1.7.0 取代了这个
文件替换为新的 CLI 配置文件,该文件位于~/.docker/config.json
.什么时候
实现新的配置文件时,旧文件(和文件格式)被保留
作为后备,以帮助现有用户迁移到新文件。
鉴于旧文件格式鼓励不安全的凭据存储 (凭证以未加密方式存储),并且此后没有 CLI 版本 Docker v1.7.0 已经创建了这个文件,支持这个文件,它的格式有 已被删除。
实验性 CLI 功能的配置选项
在版本:v19.03 中已弃用
在版本:v23.0 中删除
这DOCKER_CLI_EXPERIMENTAL
environment 变量和相应的experimental
字段已弃用。实验性功能包括
,并且这些配置选项不再起作用。
从 v23.0 开始,Docker CLI 不再打印Experimental
对于客户
在docker version
,并且该字段已从 JSON 中删除
格式。
CLI 插件支持
在版本:v20.10 中已弃用
CLI 插件 API 现在标记为已弃用。
Dockerfile 旧版ENV name value
语法
在版本:v20.10 中已弃用
The DockerfileENV
指令允许使用ENV name=value
或ENV name value
.后者 (ENV name value
) 表单可能不明确,例如,
下面定义了一个 env 变量 (ONE
) 的"TWO= THREE=world"
,
但可能打算设置三个环境变量:
ENV ONE TWO= THREE=world
此格式也不允许在单个ENV
行。
使用ENV name value
不建议使用 syntax,将来可能会删除 syntax
释放。建议用户更新其 Dockerfile 以使用ENV name=value
语法,例如:
ENV ONE="" TWO="" THREE="world"
docker build --stream
标志 (实验性)
已在 v20.10 版本中删除 在版本:v20.10 中删除
Docker v17.07 引入了一个实验性的--stream
标记docker build
哪
允许将 build-context 增量发送到守护进程,而不是
无条件地发送整个 build-context。
此功能已作为 BuildKit 的一部分重新实现,它使用流式处理
默认情况下,使用--stream
选项,则
而是打印弃用警告。
对于想要使用此功能的用户,建议通过设置
这DOCKER_BUILDKIT=1
环境变量或通过守护程序或 CLI 配置
文件。
fluentd-async-connect
对数 Opt
在版本:v20.10 中已弃用
这--log-opt fluentd-async-connect
Fluentd 日志记录驱动程序的选项为已弃用,取而代之的是--log-opt fluentd-async
.
如果使用 old 选项,则守护进程日志中会记录弃用消息:
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_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE
) 是
在 Docker v26.0 中添加,允许重新启用对这些镜像格式的支持
在守护进程中。此环境变量必须在
守护程序的环境(例如,通过 systemd 覆盖文件)。
支持DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE
环境变量
将在 Docker v27.0 中删除,之后此功能将被永久删除。
docker engine
子命令
在版本:v19.03 中已弃用
在版本:v20.10 中删除
这docker engine activate
,docker engine check
和docker engine update
提供了升级 Docker Community 引擎的替代安装方法
到 Docker Enterprise,使用 Docker Engine 的基于镜像的发行版。
此功能仅在 Linux 上可用,并且仅在本地节点上执行时可用。
鉴于此功能的局限性,以及该功能未得到广泛采用,
这docker engine
子命令将被删除,以便通过
标准包管理器。
顶级docker deploy
子命令 (实验性)
在版本:v19.03 中已弃用
在版本:v20.10 中删除
顶级docker deploy
命令(使用“Docker Application Bundle”
(.dab) 文件格式在 Docker 1.13 中作为实验性功能引入 /
17.03 中,但被对使用docker stack deploy
子命令。
docker stack deploy
使用“DAB”文件(实验性)
在版本:v19.03 中已弃用
在版本:v20.10 中删除
没有对此功能进行任何开发,也没有积极使用该文件
格式,支持 DAB 文件格式和顶级docker deploy
命令
(在 19.03 中默认隐藏)将被删除,以支持docker stack deploy
使用 compose 文件。
支持overlay2.override_kernel_check
存储选项
在版本:v19.03 中已移除在版本:v24.0 中移除
此守护程序配置选项禁用了所使用的 Linux 内核版本检查 来检测内核是否支持具有多个较低目录的 OverlayFS,即 overlay2 存储驱动程序需要。从 Docker v19.03.7 开始, 检测功能得到改进,不再依赖于内核版本,因此 选项。
AuFS 存储驱动程序
在版本:v19.03 中已移除在版本:v24.0 中移除
这aufs
storage 驱动程序已弃用,取而代之的是overlay2
,并且已经
在 Docker Engine v24.0 中删除。的aufs
存储驱动程序必须
迁移到其他存储驱动程序,例如overlay2
,升级前
到 Docker Engine v24.0。
这aufs
存储驱动程序有助于在没有
支持 OverlayFS,例如 Ubuntu 14.04 LTS,它最初随
一个 3.14 内核。
现在 Ubuntu 14.04 不再是 Docker 支持的发行版,并且overlay2
可用于所有支持的发行版(因为它们要么在内核 4.x 上,要么具有
支持向后移植的多个 lowerdirs),没有理由继续
维护aufs
storage 驱动程序。
旧版覆盖存储驱动程序
已在 v18.09 版本中删除 在版本:v24.0 中移除
这overlay
storage 驱动程序已弃用,取而代之的是overlay2
存储
驱动程序,它具有overlay
,而没有其限制(过度的
inode 消耗)。遗产overlay
存储驱动程序已在 中删除
Docker 引擎 v24.0。的overlay
storage 驱动程序应迁移到overlay2
storage 驱动程序。
遗产overlay
允许使用 overlayFS 支持的文件系统的存储驱动程序
在低于 v4.x 的内核上。现在,所有受支持的发行版都能够运行overlay2
(因为它们要么在内核 4.x 上,要么支持多个 lowerdirs
backported),没有理由继续维护overlay
storage 驱动程序。
Device mapper 存储驱动程序
在版本:v18.09 中已弃用 在版本:v23.0 中默认禁用 在版本:v25.0 中删除
这devicemapper
storage 驱动程序已弃用,取而代之的是overlay2
,并且具有
已在 Docker Engine v25.0 中删除。的devicemapper
存储驱动程序
必须迁移到其他存储驱动程序,例如overlay2
,升级前
到 Docker Engine v25.0。
这devicemapper
存储驱动程序有助于在较旧的 (3.x) 内核上运行 Docker
不支持其他存储驱动程序(例如 overlay2 或 btrfs)。
现在,对overlay2
已添加到所有受支持的发行版中(按原样显示)
要么在内核 4.x 上,要么支持向后移植多个 lowerdir),则
没有理由继续维护devicemapper
storage 驱动程序。
在引擎标签中使用保留命名空间
在版本:v18.06 中已废弃
在版本版中删除:v20.10
命名空间com.docker.*
,io.docker.*
和org.dockerproject.*
在发动机标签中
总是被记录为保留,但从未有任何执行。
现在,使用这些命名空间将导致引擎日志中出现警告,以阻止其 use,并在 v20.10 及更高版本中出错。
--disable-legacy-registry
override daemon 选项
在版本:v17.12 中禁用
在版本版中删除:v19.03
这--disable-legacy-registry
标志在 Docker 17.12 中被禁用,并将打印
使用时出错。要打印此错误,标志本身仍然存在,
但隐藏了。该标志已在 Docker 19.03 中删除。
与 V1 注册表交互
在版本:v17.06 中默认禁用
在版本版中删除:v17.12
版本 1.8.3 添加了一个标志 (--disable-legacy-registry=false
),这会阻止
Docker 守护程序pull
,push
和login
针对 v1 的作
登记处。虽然默认情况下处于启用状态,但这表示要弃用
v1 协议。
在 1.13 中,删除了对公共注册表的 v1 协议的支持。任何 使用 v1 的镜像配置应更新为使用 v2 注册表镜像。
从 Docker 17.12 开始,已删除对 V1 注册表的支持,并且--disable-legacy-registry
flag 不能再使用,并且dockerd
将无法
设置后启动。
异步service create
和service update
作为默认值
Deprecated 在 Release: v17.05 中
在版本:v17.10 中默认禁用
Docker 17.05 添加了一个可选的--detach=false
选项以将docker service create
和docker service update
同步工作。这
选项将在 Docker 17.10 中默认启用,此时--detach
flag 可用于使用以前的 (异步) 行为。
此选项的默认值也将相应地更改docker service rollback
和docker service scale
在 Docker 17.10 中。
-g
和--graph
标志开启dockerd
Deprecated 在 Release: v17.05 中
在版本版中删除:v23.0
这-g
或--graph
flag 的dockerd
或docker daemon
命令为
用于指示存储持久数据和资源的目录
配置,并已替换为更具描述性的--data-root
旗。这些标记在 v17.05 中已弃用和隐藏,并在 v23.0 中删除。
NetworkSettings 中的顶级网络属性
Deprecated 版本:v1.13.0
版本中删除的目标:v17.12
检查容器时,NetworkSettings
包含顶级信息
关于默认 (“bridge”) 网络;
EndpointID
,Gateway
,GlobalIPv6Address
,GlobalIPv6PrefixLen
,IPAddress
,IPPrefixLen
,IPv6Gateway
和MacAddress
.
这些属性已弃用,取而代之的是NetworkSettings.Networks
.这些属性已在
Docker 1.9 的 1.9 版本,但为了向后兼容而保留。
有关详细信息,请参阅 #17538 信息。
filter
选项/images/json
端点
Deprecated 版本:v1.13.0
在版本版中删除:v20.10
这filter
按引用(name 或 name:tag)筛选镜像列表的选项
现在实现为名为reference
.
repository:shortid
镜像引用
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
这repository:shortid
引用镜像的语法很少使用,
与标签引用冲突,并且可能与摘要引用混淆。
支持repository:shortid
删除了引用镜像的符号
在 Docker 17.12 中。
docker daemon
子命令
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
守护进程将移动到单独的Binaries (dockerd
),应改用。
引擎标签中值冲突的重复键
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
当设置值冲突的重复键时,会产生错误,并且守护进程 将无法启动。
MAINTAINER
在 Dockerfile 中
Deprecated 版本:v1.13.0
MAINTAINER
是LABEL
应该改用。
没有版本的 API 调用
Deprecated 版本:v1.13.0
版本中删除的目标:v17.12
应为所有 API 调用提供 API 版本,以确保与
未来的 Engine 版本。例如,而不仅仅是请求 URL/containers/json
,您现在必须请求/v1.25/containers/json
.
在没有d_type
支持 overlay/overlay2
Deprecated 版本:v1.13.0
在版本版中删除:v17.12
如果备份
文件系统不支持d_type
.例如,XFS 不支持d_type
如果格式为ftype=0
选择。
已删除对这些设置的支持,Docker v23.0 及更高版本现在无法
start 时尝试使用overlay2
或overlay
storage 驱动程序
没有d_type
支持。
有关详细信息,请参阅 #27358。
--automated
和--stars
标志开启docker search
在版本:v1.12.0 中已弃用
在版本版中删除:v20.10
这docker search --automated
和docker search --stars
选项已弃用。
用docker search --filter=is-automated=<true|false>
和docker search --filter=stars=...
相反。
-h
的简写--help
废弃于版本: v1.12.0
版本中删除目标:v17.09
简写 (-h
) 比--help
在 Linux 上,不能使用
在所有子命令上(由于它与-h
/ --hostname
upperdocker create
).因此,-h
速记未打印在
“usage” 子命令的输出,也没有记录,现在标记为 “deprecated”。
-e
和--email
标志开启docker login
在版本:v1.11.0 中已弃用
在版本版中删除:v17.06
这docker login
如果给定的用户名不存在,则不再自动向 Target Registry 注册帐户。由于此更改,email 标志不再是必需的,并且将被弃用。
分隔符 (:
) 的--security-opt
标记docker run
在版本:v1.11.0 中已弃用
版本中删除的目标:v17.06
标志--security-opt
不使用冒号分隔符 (:
) 来划分键和值,它使用等号 () 来与其他类似的标志保持一致,例如=
--storage-opt
.
API 中的事件字段不明确
在 v1.10.0 版中已弃用
字段ID
,Status
和From
已弃用,取而代之的是更丰富的结构。
有关新格式,请参阅事件 API 文档。
-f
标记docker tag
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
要使标记在各种docker
命令、-f
标志docker tag
命令已弃用。不再需要指定-f
将标签从一个镜像移动到另一个镜像。也不会docker
如果-f
标志缺失,并且指定的标记已在使用中。
API 容器启动时的 HostConfig
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
传递HostConfig
自POST /containers/{name}/start
已弃用,取而代之的是
在容器创建时定义它 (POST /containers/create
).
--before
和--since
标志开启docker ps
在 v1.10.0 版中已弃用
在版本版中删除:v1.12.0
这docker ps --before
和docker ps --since
选项已弃用。
用docker ps --filter=before=...
和docker ps --filter=since=...
相反。
特定于驱动程序的日志标记
废弃于版本: v1.9.0
在版本版中删除:v1.12.0
日志标签现在以标准方式跨不同的日志记录驱动程序生成。
因此,特定于驱动程序的日志标记选项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 or 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
binary 来代替。
以下单划线 (-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
--api-enable-cors
标记dockerd
废弃于版本: v1.6.0
在版本版中删除:v17.09
标志--api-enable-cors
自 v1.6.0 起已废弃。使用标志--api-cors-header
相反。
--run
标记docker commit
在 v0.10.0 版中已废弃
在版本版中删除:v1.13.0
标志--run
的docker commit
命令(及其简短版本-run
) 被弃用,取而代之的是
的--changes
允许传递Dockerfile
命令。
三个参数形成docker import
Deprecated 在 Release: v0.6.7 中
在版本版中删除:v1.12.0
这docker import
命令格式file|URL|- [REPOSITORY [TAG]]
自 2013 年 11 月起已废弃。它不再受支持。