不推荐使用的引擎功能
本页概述了Engine中不推荐使用的功能。不包括包装上的更改和受支持的(Linux)发行版。要了解对Linux发行版本的支持终止,请参阅 发行说明。
功能弃用政策
随着对Docker的更改,有时可能需要删除现有功能或将其替换为较新的功能。在删除现有功能之前,除非另有明确说明,否则在文档中将其标记为“已弃用”,并保留在Docker中至少一个稳定版本。在那之后,它可能会被删除。
希望用户注意每个发行版中已弃用的功能列表,并计划从这些功能迁移,并(如果适用)尽快迁移至替换功能。
不推荐使用的引擎功能
下表概述了不赞成使用的功能的当前状态:
- 不推荐使用:此功能标记为“不推荐使用”,不应再使用。在将来的版本中,该功能可能会被删除,禁用或更改行为。的“已过时”列包含在其中功能被标记为已弃用的释放,而“删除”列包含一个暂定的释放,其中所述特征是被去除。如果“删除”列中未包含任何发行版,则该发行版尚未确定。
- 已删除:该功能已被删除,禁用或隐藏。有关详细信息,请参见链接的部分。某些功能已被“软”弃用,这意味着它们仍保持功能以实现向后兼容,并允许用户迁移到其他功能。在这种情况下,可能会打印警告,并且用户不应依赖此功能。
从不兼容的图像注册表中提取图像
在版本: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 deploy
或containerd
用来拉取图像)将继续失败。
鉴于这些注册表仍然无法使用其他功能,因此我们认为此后备版本是一个临时解决方案,并将在即将发布的主要版本中删除该后备版本。
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-weight
和docker 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 activate
,docker 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
),其防止搬运工守护程序从pull
,push
和login
操作对V1注册表。尽管默认情况下启用,但这表明打算弃用v1协议。
1.13中删除了对公共注册表的v1协议的支持。使用v1的任何镜像配置都应更新为使用 v2注册表镜像。
从Docker 17.12开始,已删除了对V1注册表的支持,并且该
--disable-legacy-registry
标记不再可用,并且dockerd
在设置后将无法启动。
异步service create
和service update
默认
版本不推荐使用:v17.05
在以下版本中默认禁用:v17.10
Docker 17.05添加了一个可选--detach=false
选项来使
docker service create
和docker service update
同步工作。默认情况下,此选项将在Docker 17.10中启用,此时该--detach
标志可用于使用以前的(异步)行为。
docker service rollback
以及docker service scale
在Docker 17.10中,此选项的默认值也将相应更改。
-g
和上的--graph
标志dockerd
版本不推荐使用:v17.05
or命令的-g
or--graph
标志用于指示存储持久性数据和资源配置的目录,并已被更具描述性的
标志替换。dockerd
docker daemon
--data-root
这些标志是在Docker 1.0之前添加的,因此不会被删除,只会被 隐藏,以阻止其使用。
NetworkSettings中的顶级网络属性
版本不建议使用:v1.13.0
发行版中要删除的目标:v17.12
检查容器时,NetworkSettings
包含有关默认(“网桥”)网络的顶级信息;
EndpointID
,Gateway
,GlobalIPv6Address
,GlobalIPv6PrefixLen
,IPAddress
,
IPPrefixLen
,IPv6Gateway
,和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:shortid
Docker 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。
--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
on
冲突docker create
)。由于这个原因,-h
速记没有打印在子命令的“用法”输出中,也没有记录在案,而是被标记为“已弃用”。
-e
和上的--email
标志docker login
版本不建议使用:v1.11.0
在发行版中删除:v17.06
如果给定的用户名不存在,则docker login命令将删除在目标注册表中自动注册帐户的功能。由于此更改,不再需要email标志,并且将不推荐使用。
标记的分隔符(:
)--security-opt
docker run
版本不建议使用:v1.11.0
发行版中要删除的目标:v17.06
该标志--security-opt
不再使用冒号分隔符(:
)来划分键和值,它使用等号(=
)与其他类似标志(如)保持一致--storage-opt
。
API中的模糊事件字段
版本不推荐使用:v1.10.0
字段ID
,Status
并且From
在事件API已被弃用,取而代之的是更丰富的结构。请参阅事件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
to传递给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
现在,可以跨不同的日志记录驱动程序以标准方式生成日志标签。因此,不赞成使用特定于驱动程序的日志标记options syslog-tag
,gelf-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]]
。不再支持该命令格式。