不推荐使用的引擎功能

本页概述了Engine中不推荐使用的功能。不包括包装上的更改和受支持的(Linux)发行版。要了解对Linux发行版本的支持终止,请参阅 发行说明

功能弃用政策

随着对Docker的更改,有时可能需要删除现有功能或将其替换为较新的功能。在删除现有功能之前,除非另有明确说明,否则在文档中将其标记为“已弃用”,并保留在Docker中至少一个稳定版本。在那之后,它可能会被删除。

希望用户注意每个发行版中已弃用的功能列表,并计划从这些功能迁移,并(如果适用)尽快迁移至替换功能。

不推荐使用的引擎功能

下表概述了不赞成使用的功能的当前状态:

  • 推荐使用:此功能标记为“不推荐使用”,不应再使用。在将来的版本中,该功能可能会被删除,禁用或更改行为。的“已过时”列包含在其中功能被标记为已弃用的释放,而“删除”列包含一个暂定的释放,其中所述特征是被去除。如果“删除”列中未包含任何发行版,则该发行版尚未确定。
  • 已删除:该功能已被删除,禁用或隐藏。有关详细信息,请参见链接的部分。某些功能已被“软”弃用,这意味着它们仍保持功能以实现向后兼容,并允许用户迁移到其他功能。在这种情况下,可能会打印警告,并且用户不应依赖此功能。
地位 特征 不推荐使用 去掉
不推荐使用 从不兼容的图像注册表中提取图像 v20.10 --
不推荐使用 Windows(LCOW)上的Linux容器 v20.10 --
不推荐使用 cgroups v1的BLKIO权重选项 v20.10 --
不推荐使用 内核内存限制 v20.10 --
不推荐使用 使用外部键/值存储的经典群和覆盖网络 v20.10 --
不推荐使用 支持~/.dockercfg用于身份验证的旧配置文件 v20.10 --
不推荐使用 CLI插件支持 v20.10 --
不推荐使用 Dockerfile旧式ENV name value语法 v20.10 --
已移除 docker build --stream 标记(实验性) v20.10 v20.10
不推荐使用 实验性CLI功能的配置选项 v19.03 v20.10
不推荐使用 使用图像清单v2模式1进行推拉 v19.03 v20.10
已移除 docker engine 子命令 v19.03 v20.10
已移除 顶级docker deploy子命令(实验性) v19.03 v20.10
已移除 docker stack deploy 使用“ dab”文件(实验性) v19.03 v20.10
不推荐使用 AuFS存储驱动程序 v19.03 --
不推荐使用 旧版“覆盖”存储驱动程序 v18.09 --
不推荐使用 设备映射器存储驱动程序 v18.09 --
已移除 在引擎标签中使用保留的名称空间 v18.06 v20.10
已移除 --disable-legacy-registry 覆盖守护程序选项 v17.12 v19.03
已移除 与V1注册中心进行交互 v17.06 v17.12
已移除 异步service createservice update默认 v17.05 v17.10
已移除 -g和上的--graph标志dockerd v17.05 --
不推荐使用 NetworkSettings中的顶级网络属性 v1.13 v17.12
已移除 filter/images/json端点参数 v1.13 v20.10
已移除 repository:shortid 图片参考 v1.13 v17.12
已移除 docker daemon 子命令 v1.13 v17.12
已移除 引擎标签中的值重复的键重复 v1.13 v17.12
不推荐使用 MAINTAINER 在Dockerfile中 v1.13 --
不推荐使用 没有版本的API调用 v1.13 v17.12
已移除 d_type支持overlay / overlay2的后备文件系统 v1.13 v17.12
已移除 --automated和上的--stars标志docker search v1.12 v20.10
不推荐使用 -h 简写 --help v1.12 v17.09
已移除 -e和上的--email标志docker login v1.11 v17.06
不推荐使用 标记的分隔符(:--security-optdocker run v1.11 v17.06
不推荐使用 API中的模糊事件字段 v1.10 --
已移除 -f 标记 docker tag v1.10 v1.12
已移除 API容器启动时的HostConfig v1.10 v1.12
已移除 --before和上的--since标志docker ps v1.10 v1.12
已移除 特定于驱动程序的日志标签 v1.9 v1.12
已移除 Docker Content TrustENV密码短语变量名称更改 v1.9 v1.12
已移除 /containers/(id or name)/copy 终点 v1.8 v1.12
已移除 LXC内置exec驱动程序 v1.8 v1.10
已移除 旧命令行选项 v1.8 v1.10
已移除 --api-enable-cors 标记 dockerd v1.6 v17.09
已移除 --run 标记 docker commit v0.10 v1.13
已移除 中的三个论证形式 docker import v0.6.7 v1.12

从不兼容的图像注册表中提取图像

在版本:v20.10中弃用

Docker Engine v20.10及更高版本进行了优化,以验证本地图像缓存中的图像是否需要在拉动之前进行更新,从而防止Docker引擎发出不必要的API请求。这些优化要求容器映像注册表符合开放容器倡议分发规范

尽管大多数注册表都符合规范,但我们遇到了一些不符合要求的注册表,从而导致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.

添加了后备功能,以允许用户将其映像迁移到符合要求的注册表,或者使这些注册表符合要求。

请注意,此后备广告仅解决上的失败docker pull。其他命令(例如docker stack deploycontainerd用来拉取图像)将继续失败。

鉴于这些注册表仍然无法使用其他功能,因此我们认为此后备版本是一个临时解决方案,并将在即将发布的主要版本中删除该后备版本。

Windows上的Linux容器(LCOW)(实验性)

在版本:v20.10中弃用

在Docker 17.09中作为技术预览版引入了在Windows上运行Linux容器(LCOW)的实验性功能。尽管在引入后进行了许多增强,但该功能从未达到完整性,现在开发已停止,而倾向于在WSL2的Linux上本地运行docker。

鼓励希望在Windows主机上运行Linux工作负载的开发人员改为将Docker Desktop与WSL2结合使用 。

cgroups v1的BLKIO权重选项

在版本:v20.10中弃用

现在,在使用cgroups v1时,指定blkio weight(docker run --blkio-weightdocker run --blkio-weight-device)已被弃用,因为在Linux内核v5.0及更高版本中删除了相应的功能。当使用cgroups v2时,这些--blkio-weight选项是使用`io.weight实现的 。

内核内存限制

在版本:v20.10中弃用

docker run --kernel-memory现在已将指定内核内存限制()标记为已弃用,因为v5.4中已弃用Linux内核kmem.limit_in_bytes

使用集群存储的经典Swarm和覆盖网络

在版本:v20.10中弃用

独立(“经典”)Swarm已被弃用,并已通过外部键/值存储使用覆盖网络。相应的--cluster-advertise--cluster-store--cluster-store-opt守护程序选项已被标记为已弃用,在以后的版本中将被禁用或删除。

支持旧版~/.dockercfg配置文件

在版本:v20.10中弃用

直到v1.7.0之前的docker CLI都通过该~/.dockercfg文件存储了对注册表进行身份验证后的凭据(docker login)。Docker v1.7.0将该文件替换为位于中的新CLI配置文件~/.docker/config.json。实施新的配置文件时,旧文件(和文件格式)将作为备用文件,以帮助现有用户迁移到新文件。

鉴于旧文件格式会鼓励凭据的不安全存储(凭据未加密存储),并且自Docker v1.7.0创建此文件以来,没有任何版本的CLI,因此该文件被标记为已弃用,并且将在以下版本中删除对此文件的支持:将来的版本。

实验性CLI功能的配置选项

不建议使用DOCKER_CLI_EXPERIMENTAL环境变量和experimental CLI配置文件中的相应字段。实验性功能将默认启用,并且这些配置选项将不再起作用。

CLI插件支持

在版本:v20.10中弃用

CLI插件API现在被标记为已弃用。

Dockerfile旧式ENV name value语法

在版本:v20.10中弃用

DockerfileENV指令允许使用ENV name=value 或设置值ENV name value。后者(ENV name value)的形式可能是模棱两可的,例如,以下代码ONE使用value定义了一个env-variable()"TWO= THREE=world",但可能希望设置三个env-vars:

ENV ONE TWO= THREE=world

这种格式也不允许ENV在Dockerfile的一行中设置多个环境变量 。

ENV name value不鼓励使用该语法,并且在将来的发行版中可能会删除该语法。鼓励用户更新其Dockerfile以使用ENV name=value 语法,例如:

ENV ONE="" TWO="" THREE="world"

docker build --stream 标记(实验性)

在版本:v20.10中弃用在版本:v20.10中 删除

Docker v17.07引入了一个实验性--stream标志docker build,允许将构建上下文递增地发送到守护程序,而不是无条件地发送整个构建上下文。

此功能已作为BuildKit的一部分重新实现,它默认情况下使用流式传输,并且--stream在使用经典生成器时,该选项将被忽略,而是显示弃用警告。

鼓励想要使用此功能的用户通过设置DOCKER_BUILDKIT=1环境变量或通过守护程序或CLI配置文件来启用BuildKit 。

使用图像清单v2模式1进行推拉

在版本中不推荐使用:v19.03

发行版中要删除的目标:v20.10

不推荐使用图像清单 v2模式1格式,而推荐使用 v2模式2格式。

如果您使用的注册表仍支持v2架构1,请其管理员迁移到v2架构2。

docker engine 子命令

在版本中不推荐使用:v19.03

已在发行版:v20.10中删除

docker engine activatedocker engine check以及docker engine update 提供了一种替代的安装方法升级到多克尔企业多克尔社区发动机,使用多克尔引擎的基于图像的分布。

此功能仅在Linux上可用,并且仅在本地节点上执行时才可用。鉴于此功能的局限性以及该功能未被广泛采用,docker engine将删除子命令,以便通过标准软件包管理器进行安装。

顶级docker deploy子命令(实验性)

在版本中不推荐使用:v19.03

已在发行版:v20.10中删除

顶级docker deploy命令(使用“ Docker应用程序捆绑包”(.dab)文件格式)是Docker 1.13 / 17.03中的一项实验性功能,但已被使用docker stack deploy subcommand的对Docker Compose文件的支持所取代。

docker stack deploy 使用“ dab”文件(实验性)

在版本中不推荐使用:v19.03

已在发行版:v20.10中删除

无需对此功能进行任何开发,也不会主动使用文件格式,将删除对DAB文件格式的支持和顶级docker deploy命令(默认情况下在19.03中隐藏),而支持docker stack deploy 使用撰写文件。

AuFS存储驱动程序

在版本中不推荐使用:v19.03

aufs不推荐使用存储驱动程序,而推荐使用,overlay2将来的发行版中将删除该驱动程序。aufs建议存储驱动程序的用户迁移到其他存储驱动程序,例如overlay2,现在是默认存储驱动程序。

aufs存储驱动程序有助于在不支持OverlayFS的发行版上运行Docker,例如最初带有3.14内核的Ubuntu 14.04 LTS。

既然Ubuntu 14.04不再是Docker所支持的发行版,并且overlay2 可用于所有受支持的发行版(因为它们在内核4.x上,或已支持向后移植多个lowerdir),则没有理由继续维护该aufs存储司机。

旧版“覆盖”存储驱动程序

在发行版中不推荐使用:v18.09

overlay存储驱动器弃用,取而代之的的overlay2存储驱动器,它具有的所有好处overlay,没有它的局限性(索引节点过多消耗)。旧版overlay存储驱动程序将在以后的版本中删除。overlay存储驱动程序的用户应迁移到overlay2 存储驱动程序。

旧版overlay存储驱动程序允许在4.x之前的内核上使用由overlayFS支持的文件系统。现在,所有受支持的发行版都可以运行overlay2 (因为它们在内核4.x上,或者已经支持向后移植多个lowerdirs),因此没有理由继续维护overlay存储驱动程序。

设备映射器存储驱动程序

在发行版中不推荐使用:v18.09

devicemapper不推荐使用存储驱动程序,而推荐使用,overlay2将来的发行版中将删除该驱动程序。devicemapper建议存储驱动程序的用户迁移到其他存储驱动程序,例如overlay2,现在是默认存储驱动程序。

devicemapper对有其他存储驱动程序(如overlay2,或AUFS)不支持较早的(3.X)内核运行多克存储驱动程序便利。

现在,overlay2已将对所有发行版的支持添加到了发行版中(因为它们位于内核4.x上,或者支持多个lowerdir向后移植),因此没有理由继续维护devicemapper存储驱动程序。

在引擎标签中使用保留的名称空间

在发行版中不推荐使用:v18.06

在发行版中删除:v20.10

引擎标签中的名称空间com.docker.*io.docker.*org.dockerproject.*始终被记录为保留,但从未执行过任何操作。

现在,这些名称空间的使用将在引擎日志中引起警告,以阻止其使用,而在v20.10及更高版本中将出现错误。

--disable-legacy-registry 覆盖守护程序选项

发行中已禁用: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),其防止搬运工守护程序从pullpushlogin操作对V1注册表。尽管默认情况下启用,但这表明打算弃用v1协议。

1.13中删除了对公共注册表的v1协议的支持。使用v1的任何镜像配置都应更新为使用 v2注册表镜像

从Docker 17.12开始,已删除了对V1注册表的支持,并且该 --disable-legacy-registry标记不再可用,并且dockerd在设置后将无法启动。

异步service createservice update默认

版本不推荐使用:v17.05

在以下版本中默认禁用:v17.10

Docker 17.05添加了一个可选--detach=false选项来使 docker service createdocker service update同步工作。默认情况下,此选项将在Docker 17.10中启用,此时该--detach 标志可用于使用以前的(异步)行为。

docker service rollback 以及docker service scale在Docker 17.10中,此选项的默认值也将相应更改。

-g和上的--graph标志dockerd

版本不推荐使用:v17.05

or命令的-gor--graph标志用于指示存储持久性数据和资源配置的目录,并已被更具描述性的 标志替换。dockerddocker daemon--data-root

这些标志是在Docker 1.0之前添加的,因此不会被删除,只会被 隐藏,以阻止其使用。

NetworkSettings中的顶级网络属性

版本不建议使用:v1.13.0

发行版中要删除的目标:v17.12

检查容器时,NetworkSettings包含有关默认(“网桥”)网络的顶级信息;

EndpointIDGatewayGlobalIPv6AddressGlobalIPv6PrefixLenIPAddressIPPrefixLenIPv6Gateway,和MacAddress

不推荐使用这些属性,而推荐使用中的每个网络属性 NetworkSettings.Networks。这些属性已在Docker 1.9中“弃用”,但为了向后兼容而保留。

有关更多信息,请参见#17538

filter/images/json端点参数

版本不建议使用:v1.13.0

在发行版中删除:v20.10

现在filter,通过引用(名称或名称:标签)过滤图像列表的参数已实现为名为的常规过滤器reference

repository:shortid 图片参考

版本不建议使用:v1.13.0

在发行版中删除:v17.12

repository:shortid引用图像的语法很少使用,会与标记引用冲突,并且可能与摘要引用混淆。

repository:shortidDocker 17.12中删除了对参考图像表示法的支持。

docker daemon 子命令

版本不建议使用:v1.13.0

在发行版中删除:v17.12

该守护程序将移至单独的二进制文件(dockerd),而应改为使用它。

引擎标签中的值重复的键重复

版本不建议使用:v1.13.0

在发行版中删除:v17.12

当使用重复的值设置重复键时,将产生错误,并且守护程序将无法启动。

MAINTAINER 在Dockerfile中

版本不建议使用:v1.13.0

MAINTAINER是一种早期非常有限的形式LABEL,应改为使用。

没有版本的API调用

版本不建议使用:v1.13.0

发行版中要删除的目标:v17.12

应该向所有API调用提供API版本,以确保与将来的Engine版本兼容。/containers/json现在,您不仅要请求URL ,还必须请求request /v1.25/containers/json

d_type支持overlay / overlay2的后备文件系统

版本不建议使用:v1.13.0

在发行版中删除:v17.12

如果后备文件系统不支持,则overlay和overlay2存储驱动程序将无法正常工作d_type。例如,d_type 如果使用ftype=0选项格式化XFS,则不支持。

从Docker 17.12开始,新安装将在不支持的情况下不d_type支持在后备文件系统上运行overlay2 。对于升级到17.12的现有安装,将打印警告。

有关更多信息,请参阅#27358

在版本中不推荐使用:v1.12.0

在发行版中删除:v20.10

docker search --automateddocker search --stars选项已被弃用。使用docker search --filter=is-automated=<true|false>docker search --filter=stars=...代替。

-h 简写 --help

版本不建议使用:v1.12.0

发行版中要删除的目标:v17.09

速记(-h)比--helpLinux少见,并且不能在所有子命令上使用(由于它与-h/ --hostnameon 冲突docker create)。由于这个原因,-h速记没有打印在子命令的“用法”输出中,也没有记录在案,而是被标记为“已弃用”。

-e和上的--email标志docker login

版本不建议使用:v1.11.0

在发行版中删除:v17.06

如果给定的用户名不存在,则docker login命令将删除在目标注册表中自动注册帐户的功能。由于此更改,不再需要email标志,并且将不推荐使用。

标记的分隔符(:--security-optdocker run

版本不建议使用:v1.11.0

发行版中要删除的目标:v17.06

该标志--security-opt不再使用冒号分隔符(:)来划分键和值,它使用等号(=)与其他类似标志(如)保持一致--storage-opt

API中的模糊事件字段

版本不推荐使用:v1.10.0

字段IDStatus并且From在事件API已被弃用,取而代之的是更丰富的结构。请参阅事件API文档以获取新格式。

-f 标记 docker tag

版本不推荐使用:v1.10.0

在版本中删除:v1.12.0

为了使各个docker命令之间的标记保持一致,不建议使用-fdocker tag命令上的标志。不再需要指定-f将标签从一个图像移动到另一个图像。docker如果该-f标志丢失并且指定的标记已在使用中,则也不会产生错误。

API容器启动时的HostConfig

版本不推荐使用:v1.10.0

在版本中删除:v1.12.0

不建议将HostConfigto传递给POST /containers/{name}/start,而应在容器创建(POST /containers/create)时对其进行定义。

--before和上的--since标志docker ps

版本不推荐使用:v1.10.0

在版本中删除:v1.12.0

docker ps --beforedocker ps --since选项已被弃用。使用docker ps --filter=before=...docker ps --filter=since=...代替。

特定于驱动程序的日志标签

版本不建议使用:v1.9.0

在版本中删除:v1.12.0

现在,可以跨不同的日志记录驱动程序以标准方式生成日志标签。因此,不赞成使用特定于驱动程序的日志标记options syslog-taggelf-tag而建议 fluentd-tag使用常规tag选项。


docker --log-driver=syslog --log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"

Docker Content Trust ENV密码短语变量名称更改

版本不建议使用:v1.9.0

在版本中删除:v1.12.0

从1.9开始,Docker Content Trust Offline密钥已重命名为Root密钥,Tagging密钥已重命名为Repository密钥。由于此重命名,我们还更改了相应的环境变量

  • 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 终点

版本不推荐使用:v1.8.0

在版本中删除:v1.12.0

/containers/(id or name)/copy不推荐使用端点,而推荐使用/containers/(id or name)/archive

LXC内置exec驱动程序

版本不推荐使用:v1.8.0

在版本中删除:v1.10.0

内置的LXC执行驱动程序,lxc-conf标志和API字段已被删除。

旧命令行选项

版本不推荐使用:v1.8.0

在版本中删除:v1.10.0

不赞成使用标志-d--daemon支持daemon子命令:

docker daemon -H ...

-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

版本不推荐使用:v1.5.0

在版本中删除:v1.12.0

-help删除了单破折号(),转而使用双破折号--help

docker -help
docker [COMMAND] -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的搬运工的提交(及其短版-run)有利于被弃用--changes,允许通过标记Dockerfile的命令。

中的三个论证形式 docker import

版本不建议使用:v0.6.7

在版本中删除:v1.12.0

自2013年11月起已弃用该docker import命令格式file|URL|- [REPOSITORY [TAG]]。不再支持该命令格式。

docker文档关于技术弃用