Docker 引擎 24.0 发行说明
本页面介绍 Docker Engine 版本 24.0 的最新更改、添加内容、已知问题和修复。
欲了解更多信息:
- 已弃用和删除的功能,请参阅 已弃用的引擎功能。
- 引擎 API 的更改,请参阅 引擎 API 版本历史记录。
24.0.9
2024-01-31有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
安全
此版本包含以下影响 Docker 引擎及其组件的 CVE 的安全修复程序。
CVE | 成分 | 修复版本 | 严重性 |
---|---|---|---|
CVE-2024-21626 | 朗克 | 1.1.12 | 高,CVSS 8.6 |
CVE-2024-24557 | Docker引擎 | 24.0.9 | 中,CVSS 6.9 |
重要的
请注意,此版本的 Docker Engine 不包含对 BuildKit 中以下已知漏洞的修复:
要解决这些漏洞,请升级到 Docker Engine v25.0.2。
有关此版本中解决的安全问题以及 BuildKit 中未解决的漏洞的更多信息,请参阅 博客文章。
有关每个漏洞的详细信息,请参阅相关的安全公告:
包装更新
- 将 runc 升级到 v1.1.12。 莫比/莫比#47269
- 将containerd升级到 v1.7.13(仅限静态二进制文件)。 莫比/莫比#47280
24.0.8
2024-01-25有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 实时恢复:具有自动删除(
docker run --rm
)功能的容器在引擎重新启动时不再被强制删除。 莫比/莫比#46857
包装更新
- 升级 转至
go1.20.13
. moby/moby#47054、 docker/cli#4826、 docker/docker-ce-packaging#975 - 将containerd(仅限静态二进制文件)升级到 v1.7.12 moby/moby#47096
- 将 runc 升级到 v1.1.11。 莫比/莫比#47010
24.0.7
2023-10-27有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 以原子方式写入overlay2层元数据。 莫比/莫比#46703
- 修复 systemd 版本 250 及更高版本上的“Rootful-in-Rootless”Docker-in-Docker。 莫比/莫比#46626
- 修复
dockerd-rootless-setuptools.sh
用户名包含反斜杠时的问题。 莫比/莫比#46407 dockerd --bridge=none
修复了在停止没有网络附件的容器以及使用 时阻止网络沙箱被完全删除的错误。莫比/莫比#46702- 修复了取消 API 请求可能会中断容器重新启动的错误。 莫比/莫比#46697
--ip-range
修复了提供大于子网的范围 时容器无法启动的问题。 docker/for-mac#6870- 使用 zstd 输出修复数据损坏。 莫比/莫比#46709
- 修复容器 MAC 地址的应用条件。 莫比/莫比#46478
- 提高统计收集器的性能。 莫比/莫比#46448
- 修复源策略规则最终顺序错误的问题。 莫比/莫比#46441
包装更新
- 添加对 Fedora 39 和 Ubuntu 23.10 的支持。 docker/docker-ce-packaging#940 , docker/docker-ce-packaging#955
- 修复
docker.socket
卸载 RPM 包时未禁用的问题docker-ce
。 docker/docker-ce-packaging#852 - 升级 转至
go1.20.10
. docker/docker-ce-packaging#951 - 将containerd升级到
v1.7.6
(仅限静态二进制文件)。 莫比/莫比#46103 - 将包升级
containerd.io
到v1.6.24
.
安全
默认情况下拒绝容器访问
/sys/devices/virtual/powercap
。此更改增强了对 CVE-2020-8694、 CVE-2020-8695和 CVE-2020-12912以及称为 PLATYPUS 攻击的攻击的防御能力。
24.0.6
2023-09-05有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- containerd 存储后端:修复
docker ps
当内容存储中不再存在容器映像时失败的问题。 莫比/莫比#46095 - containerd 存储后端:当内容存储中不再存在容器映像配置时
修复
docker ps -s -a
并失败。莫比/莫比#46097docker container prune
- containerd 存储后端:修复
docker inspect
当容器映像配置不再(或从未)出现在内容存储中时失败的问题。 莫比/莫比#46244 - containerd 存储后端:
overlayfs
通过使用引用计数的 rootfs 挂载来修复差异并使用快照程序导出。 莫比/莫比#46266 - containerd 存储后端:修复当本地可用的镜像平台与所需平台不匹配时出现的误导性错误消息。 莫比/莫比#46300
- containerd 存储后端:
FROM scratch
使用经典构建器修复 Dockerfile 指令。 莫比/莫比#46302 - containerd 存储后端:
mismatched image rootfs and manifest layers
使用经典构建器修复错误。 莫比/莫比#46310 - 从所有注册表中拉取 Docker 映像格式 v1 和 Docker 映像清单版本 2、架构 1 映像时发出警告。 莫比/莫比#46290
- 使用自定义卷选项修复卷的实时恢复。 莫比/莫比#46366
- 修复以非 root 用户身份运行容器时错误地删除功能位的问题(注意:由于回归,此更改已经有效存在)。 莫比/莫比#46221
- 修复网络隔离 iptables 规则,防止 IPv6 Neighbor Solicitation 数据包在容器之间交换。 莫比/莫比#46214
- 修复
dockerd.exe --register-service
当二进制文件位于 Windows 上的当前目录中时不起作用的问题。 莫比/莫比#46215 - 添加建议使用 PAT 来
docker login
对抗 Docker Hub 的提示。 泊坞窗/cli#4500 - 为 CLI 的 Bash 补全用户缩短 shell 启动时间。 泊坞窗/cli#4517
- 如果可能的话,通过跳过来提高某些命令的速度
GET /_ping
。 泊坞窗/cli#4508 docker manifest inspect
修复对Docker Hub 上的映像 使用 PAT 时的凭证范围。泊坞窗/cli#4512- 修复
docker events
不支持--format=json
. 泊坞窗/cli#4544
包装更新
- 升级 转至
go1.20.7
. moby/moby#46140、 docker/cli#4476、 docker/docker-ce-packaging#932 - 将containerd升级到
v1.7.3
(仅限静态二进制文件)。 莫比/莫比#46103 - 将 Compose 升级到
v2.21.0
. docker/docker-ce-packaging#936
24.0.5
2023-07-24有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- Go 客户端现在避免在 HTTP
Host:
标头中使用 UNIX 套接字路径,以便与go1.20.6
. 莫比/莫比#45962 , 莫比/莫比#45990 - containerd 存储后端:修复
Variant
不包含在docker image inspect
和中的问题GET /images/{name}/json
。 莫比/莫比#46025 - containerd 存储后端:防止在图像导出期间潜在的内容垃圾收集。 莫比/莫比#46021
- containerd 存储后端:防止
RepoDigests
. 莫比/莫比#46014 - containerd 存储后端:修复使用标签和摘要引用的图像时针对错误标签进行的操作。 莫比/莫比#46013
EXPOSE
containerd 存储后端:修复了使用旧版构建器构建容器时 引起的恐慌。莫比/莫比#45921overlay
修复了在尝试在非 Swarm 节点上 创建网络时导致返回不直观错误的回归问题。莫比/莫比#45974- 正确报告从命令行解析卷规范的错误。 泊坞窗/cli#4423
auths: null
修复在 CLI 配置文件中找到 时引起的恐慌。泊坞窗/cli#4450
包装更新
- 使用 moby/moby 中提供的初始化脚本
contrib/init
。 docker/docker-ce-packaging#914 , docker/docker-ce-packaging#926 - 从 中删除暴发户
contrib/init
。 莫比/莫比#46044 - 升级 转至
go1.20.6
. docker/cli#4428、 moby/moby#45970、 docker/docker-ce-packaging#921 - 将 Compose 升级到
v2.20.2
. docker/docker-ce-packaging#924 - 将 buildx 升级到
v0.11.2
. docker/docker-ce-packaging#922
24.0.4
2023-07-07有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 修复了 24.0.3 期间引入的回归,该回归导致在具有绑定安装的容器的实时恢复期间出现恐慌。 莫比/莫比#45903
24.0.3
2023-07-06有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- containerd 镜像存储:修复了无法与不包含默认平台清单的多平台镜像进行交互的问题。 莫比/莫比#45849
FROM scratch
containerd 镜像存储:修复在容器构建中 缓存的似是而非的尝试。莫比/莫比#45822- containerd 映像存储:修复
docker cp
无法多次挂载相同内容的快照程序。 莫比/莫比#45780 , 莫比/莫比#45786 - containerd 镜像存储:修复
type=image
未正确解压/存储的构建。 莫比/莫比#45692 - containerd 映像存储:修复了错误地尝试解压
docker load
. 莫比/莫比#45688 - 容器镜像存储:正确设置用户代理,并在与注册表交互时包含附加信息,例如快照程序。 莫比/莫比#45671 , 莫比/莫比#45684
- containerd 映像存储:修复了在快照程序之间切换后无法解压已提取内容的问题。 莫比/莫比#45678
- containerd 镜像存储:修复已重新标记或删除所有标签但仍在使用时被修剪的镜像。 莫比/莫比#45857
- 修复了拓扑字段未传播到 NodeCSIInfo 中的 Swarm CSI 问题。 莫比/莫比#45810
- 修复因 raft 日志过大而导致添加新 Swarm 管理器失败的问题。 莫比/莫比#45703 , 莫比/swarmkit#3122 , 莫比/swarmkit#3128
name_to_handle_at(2)
现在默认 seccomp 配置文件中始终允许。 莫比/莫比#45833- 修复了导致加密 Swarm 覆盖网络无法在默认端口 (4789) 以外的端口上工作的问题。 莫比/莫比#45637
- 修复了实时恢复期间恢复安装引用计数失败的问题。 莫比/莫比#45824
- 修复实时恢复期间各种与网络相关的故障。 莫比/莫比#45658 , 莫比/莫比#45659
- 修复当守护进程意外终止时,正在运行的容器以零(成功)退出状态恢复的问题。 莫比/莫比#45801
- 修复执行运行状况检查探测时潜在的恐慌。 莫比/莫比#45798
- 修复了容器执行启动中的竞争条件引起的恐慌。 莫比/莫比#45794
- 修复因使用不存在的命令将终端附加到 exec 而导致的异常。 莫比/莫比#45643
host-gateway
通过将 IP 作为标签传递来 修复BuildKit(还需要docker/buildx#1894)。 莫比/莫比#45790- 修复了取消请求时会强制终止容器的问题
POST /containers/{id}/stop
,而不是等到指定的超时才“正常”停止。 莫比/莫比#45774 docker cp -a
修复了从根 (/
) 目录访问失败的 问题。莫比/莫比#45748- 通过在 OCI 配置中更正确地设置资源约束参数,提高与非 runc 容器运行时的兼容性。 莫比/莫比#45746
- 修复了无根模式下某些配置(例如 LDAP)中 subuid/subgid 范围重叠导致的问题。 moby/moby#45747 , rootless-containers/rootlesskit#369
- 填充
GET /info
. 莫比/莫比#45856 docker info
修复仅客户端处于调试模式时 无法正确打印调试信息的问题。泊坞窗/cli#4393- 修复通过 SSH 连接连接到主机时与挂起连接相关的问题。 泊坞窗/cli#4395
包装更新
- 升级 转至
go1.20.5
. moby/moby#45745、 docker/cli#4351、 docker/docker-ce-packaging#904 - 将 Compose 升级到
v2.19.1
. docker/docker-ce-packaging#916 - 将 buildx 升级到
v0.11.1
. docker/docker-ce-packaging#918
24.0.2
2023-05-26有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 修复了构建过程中引用本地标记图像时出现的恐慌。 莫比/buildkit#3899 , 莫比/莫比#45582
exit code: 4294967295
修复执行多个并发构建阶段时 可能会失败的构建。莫比/莫比#45620- 修复 Windows 上的 DNS 解析忽略
etc/hosts
(%WINDIR%\System32\Drivers\etc\hosts
) 的问题,包括localhost
. 莫比/莫比#45562 docker exec
针对导致并发命令花费的时间明显长于预期的 containerd 错误应用解决方法。莫比/莫比#45625Created
containerd 图像存储:修复图像字段包含不正确值 的问题。莫比/莫比#45623- containerd镜像存储:调整镜像拉取进度的输出,使得无论是否启用containerd镜像存储,输出都具有相同的格式。 莫比/莫比#45602
- Containerd 映像存储:在默认映像存储和 Containerd 映像存储之间切换现在需要重新启动守护进程。 莫比/莫比#45616
包装更新
- 将 Buildx 升级到
v0.10.5
. docker/docker-ce-packaging#900
24.0.1
2023-05-19有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
已删除
- 删除 24.0 主要版本中删除的存储驱动程序的 CLI 补全。 泊坞窗/cli#4302
错误修复和增强功能
- 修复了来自外部服务器的 DNS 查询 NXDOMAIN 回复作为 SERVFAIL 转发到客户端的问题。 莫比/莫比#45573
docker pull --platform
修复了报告No such image
指向同一图像的另一个标签的 问题。莫比/莫比#45562- 修复了配置重新加载期间会忘记不安全注册表配置的问题。 莫比/莫比#45571
- containerd 图像存储:修复没有图层的图像不会在moby/moby中列出的问题#45588
docker images -a
GET /images/{id}/json
API:修复了返回null
而不是空RepoTags
和 的问题RepoDigests
。 莫比/莫比#45564POST /commit
API:修复不接受空请求正文的 问题。莫比/莫比#45568
包装更新
- 将 Compose 升级到
v2.18.1
. docker/docker-ce-packaging#896
24.0.0
2023-05-16有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
新的
- 引入对 Containerd 作为内容存储的实验性支持(替换现有的存储驱动程序)。 moby/moby#43735, 其他 moby/moby 拉取请求
- CLI
--host
标志现在支持主机地址中的路径组件ssh://
,允许使用备用套接字路径,而无需在远程主机上进行配置。 泊坞窗/cli#4073 - CLI命令
docker info
现在报告版本和平台字段。 泊坞窗/cli#4180 - 引入守护进程标志
--default-network-opt
来配置新创建的网络的选项。 莫比/莫比#43197 - 限制对默认 seccomp 配置文件中系统调用系列的
AF_VSOCK
访问。莫比/莫比#44562socket(2)
- 引入对在容器上设置 OCI 运行时注释的支持。 docker/cli#45025 , moby/moby#45025
- 现在可以在 中配置替代运行时
daemon.json
,从而启用运行时名称的别名并传递选项。 莫比/莫比#45032 docker-init
除了.PATH
莫比/莫比#45198- API:
--no-new-privileges
在GET /info
. 莫比/莫比#45320
已删除
docker info
不再报道IndexServiceAddress
。 泊坞窗/cli#4204- libnetwork:删除过时内核版本的后备代码。 莫比/莫比#44684 , 莫比/莫比#44802
- libnetwork:删除与经典 Swarm 相关的未使用代码。 莫比/莫比#44965
- libnetwork:
xt_u32
从加密的 Swarm 覆盖网络中删除内核模块的使用。 莫比/莫比#45281 - 删除对已弃用的 BuildKit 的支持,
buildinfo
转而支持标准来源证明。 莫比/莫比#45097 - 删除已弃用的 AUFS 和旧
overlay
存储驱动程序。 莫比/莫比#45342 , 莫比/莫比#45359 - 删除已弃用的
overlay2.override_kernel_check
存储驱动程序选项。 莫比/莫比#45368 apparmor_parser
从 AppArmor 配置文件中 删除过时版本的解决方法。莫比/莫比#45500- API:
GET /images/json
不再将空的 RepoTags 和 RepoDigests 表示为<none>:<none>
/<none>@<none>
。在 API >= 1.43 上,将返回空数组。 莫比/莫比#45068
已弃用
- 弃用
--oom-score-adjust
守护进程选项。 莫比/莫比#45315 - API:弃用和
VirtualSize
中的字段。 莫比/莫比#45346GET /images/json
GET /images/{id}/json
错误修复和增强功能
- 该
docker stack
命令不再验证build
Compose 文件的部分。 泊坞窗/cli#4214 - 修复超时后延迟的运行状况检查进程。 莫比/莫比#43739
- 减少使用存储驱动时容器启动的开销
overlay2
。 莫比/莫比#44285 - API
:
before=
处理since=
.莫比/莫比#44503GET /images
- 修复用户定义网络使用的嵌入式 DNS 解析器实现中的大量错误。 莫比/莫比#44664
- 将
execDuration
字段添加到事件属性映射中。 莫比/莫比#45494 internal
现在可以使用 Windows 、l2bridge
和驱动程序创建群级网络nat
。 莫比/swarmkit#3121 , 莫比/莫比#45291
包装更新
- 更新 转到
1.20.4
. docker/cli#4253、 moby/moby#45456、 docker/docker-ce-packaging#888 - 更新
containerd
到v1.7.1
. 莫比/莫比#45537 - 更新
buildkit
到v0.11.6
. 莫比/莫比#45367