Docker Engine 24.0 发布说明

本页介绍了 Docker Engine 24.0 的最新更改、新增功能、已知问题和修复内容。

关于以下内容的更多信息:

24.0.9

2024-01-31

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

安全

此版本包含针对以下 CVE 的安全修复, 这些 CVE 影响 Docker Engine 及其组件。

CVE组件修复版本严重性
CVE-2024-21626runc1.1.12高,CVSS 8.6
CVE-2024-24557Docker 引擎24.0.9Medium, CVSS 6.9

重要

请注意,此版本的 Docker Engine 不包含针对 BuildKit 中以下已知漏洞的修复程序:

为解决这些漏洞,请升级到 Docker Engine v25.0.2

有关本次发布解决的安全问题以及 BuildKit 中未解决的漏洞的更多信息, 请参阅 博客文章

有关每个漏洞的详细信息,请参阅相关的安全公告:

软件包更新

24.0.8

2024-01-25

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • 实时恢复:具有自动删除(docker run --rm)的容器在引擎重启时不再被强制删除。 moby/moby#46857

软件包更新

24.0.7

2023-10-27

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • 原子地写入 overlay2 层元数据。 moby/moby#46703
  • 修复在systemd 250及更高版本上的“Rootful-in-Rootless”Docker-in-Docker问题。 moby/moby#46626
  • 修复用户名包含反斜杠时返回dockerd-rootless-setuptools.sh的问题。 moby/moby#46407
  • 修复一个错误,该错误会在停止没有网络附件的容器并使用 dockerd --bridge=none 时,阻止网络沙箱被完全删除。 moby/moby#46702
  • 修复取消 API 请求会中断容器重启的错误。 moby/moby#46697
  • 修复在提供范围大于子网的--ip-range时容器无法启动的问题。 docker/for-mac#6870
  • 修复使用 zstd 输出时的数据损坏问题。 moby/moby#46709
  • 修复容器 MAC 地址应用的条件。 moby/moby#46478
  • 改善统计收集器的性能。 moby/moby#46448
  • 修复源策略规则顺序错误的问题。 moby/moby#46441

软件包更新

安全

24.0.6

2023-09-05

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • containerd 存储后端:修复当容器镜像不再存在于内容存储中时 docker ps 失败的问题。 moby/moby#46095
  • containerd 存储后端:修复当容器镜像配置不再存在于内容存储中时,docker ps -s -adocker container prune 失败的问题。 moby/moby#46097
  • containerd 存储后端:修复当容器镜像配置不再(或从未)存在于内容存储中时 docker inspect 失败的问题。 moby/moby#46244
  • containerd 存储后端:通过使用引用计数的 rootfs 挂载,修复 overlayfs 快照器的 diff 和 export。 moby/moby#46266
  • containerd 存储后端:修复本地可用的镜像平台与期望平台不匹配时出现的误导性错误信息。 moby/moby#46300
  • containerd 存储后端:修复使用经典构建器时的 FROM scratch Dockerfile 指令问题。 moby/moby#46302
  • containerd 存储后端:修复使用经典构建器时出现的 mismatched image rootfs and manifest layers 错误。 moby/moby#46310
  • 从所有注册表拉取 Docker Image Format v1 和 Docker Image manifest 版本 2,模式 1 的镜像时发出警告。 moby/moby#46290
  • 修复带自定义卷选项的卷的 live-restore。 moby/moby#46366
  • 修复以非root用户身份运行容器时错误地丢弃capabilities位的问题(注意:由于回归问题,此更改实际上已经存在)。 moby/moby#46221
  • 修复网络隔离 iptables 规则,防止容器之间交换 IPv6 邻居请求数据包。 moby/moby#46214
  • 修复在 Windows 上当前目录中存在Binaries时 dockerd.exe --register-service 无法工作的问题。 moby/moby#46215
  • 添加一个提示,建议使用PAT将docker login针对Docker Hub进行操作。 docker/cli#4500
  • 改善使用 CLI 的 Bash 补全功能的用户的 shell 启动时间。 docker/cli#4517
  • 通过在可能的情况下跳过GET /_ping来提高某些命令的速度。 docker/cli#4508
  • 在使用PAT在Docker Hub上docker manifest inspect镜像时修复凭据范围。 docker/cli#4512
  • 修复 docker events 不支持 --format=json 的问题。 docker/cli#4544

软件包更新

24.0.5

2023-07-24

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • Go 客户端现在避免在 HTTP Host: 标头中使用 UNIX 套接字路径,以兼容在 go1.20.6 中引入的更改。 moby/moby#45962, moby/moby#45990
  • containerd 存储后端:修复 Variant 不被包含在 docker image inspectGET /images/{name}/json 中的问题。 moby/moby#46025
  • containerd 存储后端:在导出镜像时防止内容被垃圾回收。 moby/moby#46021
  • containerd 存储后端:防止在 RepoDigests 中出现重复的摘要条目。 moby/moby#46014
  • containerd 存储后端:修复在使用标签和摘要引用的镜像时,对错误标签执行操作的问题。 moby/moby#46013
  • containerd 存储后端:修复由使用遗留构建器构建容器时出现的 EXPOSE 引发的 panic。 moby/moby#45921
  • 修复一个回归问题,当尝试在非Swarm节点上创建overlay网络时,会导致不直观的错误返回。 moby/moby#45974
  • 从命令行解析卷规范时正确报告错误。 docker/cli#4423
  • 修复在CLI配置文件中找到auths: null时引发的panic。 docker/cli#4450

软件包更新

24.0.4

2023-07-07

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • 修复在24.0.3期间引入的回归,该回归会导致具有绑定挂载的容器在实时恢复期间发生panic。 moby/moby#45903

24.0.3

2023-07-06

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • containerd 镜像存储:修复一个无法与不包含默认平台清单的多平台镜像交互的问题。 moby/moby#45849
  • containerd 镜像存储:修复在容器构建中尝试缓存 FROM scratch 的错误行为。 moby/moby#45822
  • containerd 镜像存储:修复与无法多次挂载相同内容的快照程序一起使用时出现的 docker cp 问题。 moby/moby#45780, moby/moby#45786
  • containerd 镜像存储:修复构建时 type=image 未被正确解包/存储的问题。 moby/moby#45692
  • containerd 镜像存储:修复错误地尝试解包伪镜像(包括 attestation)在 docker load. moby/moby#45688
  • containerd 镜像存储:正确设置用户代理,并在与注册表交互时包含快照器等附加信息。 moby/moby#45671, moby/moby#45684
  • containerd 镜像存储:修复在快照程序之间切换后,解压已拉取内容失败的问题。 moby/moby#45678
  • containerd 镜像存储:修复已被重新标记或所有标签被移除但仍被使用的镜像被清理的问题。 moby/moby#45857
  • 修复 Swarm CSI 问题,其中 Topology 字段未传播到 NodeCSIInfo 中。 moby/moby#45810
  • 修复由于非常大的 raft 日志导致无法添加新的 Swarm 管理器的问题。 moby/moby#45703, moby/swarmkit#3122, moby/swarmkit#3128
  • name_to_handle_at(2) 现在在默认的 seccomp 配置文件中始终被允许。 moby/moby#45833
  • 修复一个阻止加密的Swarm overlay网络在默认端口(4789)之外工作的错误。 moby/moby#45637
  • 修复在实时恢复期间未能恢复挂载引用计数的故障。 moby/moby#45824
  • 修复在 live-restore 期间的各种与网络相关的故障。 moby/moby#45658, moby/moby#45659
  • 修复在守护进程意外终止时,正在运行的容器恢复时退出状态为零(成功)的问题。 moby/moby#45801
  • 修复在执行健康检查探针时可能出现的 panic 错误。 moby/moby#45798
  • 修复容器执行启动中由竞态条件引起的 panic。 moby/moby#45794
  • 修复因将终端附加到包含不存在命令的exec而引发的异常。 moby/moby#45643
  • 通过将 IP 作为标签传递使用 BuildKit 修复 host-gateway(还需要 docker/buildx#1894)。 moby/moby#45790
  • 修复一个问题,当请求被取消时,POST /containers/{id}/stop 会强制终止容器,而不是等待指定的超时时间进行“优雅”停止。 moby/moby#45774
  • 修复一个从根目录(/)访问 docker cp -a 会失败的问题。 moby/moby#45748
  • 通过在OCI配置中更正确地设置资源约束参数,提高与非runc容器运行时的兼容性。 moby/moby#45746
  • 修复在无root模式下,由于在某些配置(例如 LDAP)中重叠的子UID/子GID范围引起的问题。 moby/moby#45747, rootless-containers/rootlesskit#369
  • 在填充 GET /info 的调试部分时,大大减少 CPU 和内存使用。 moby/moby#45856
  • 修复一个在仅客户端处于调试模式时,docker info期间调试信息未正确打印的问题。 docker/cli#4393
  • 修复通过SSH连接到主机时因连接挂起导致的问题。 docker/cli#4395

软件包更新

24.0.2

2023-05-26

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

错误修复和功能增强

  • 修复在引用本地标记的镜像时构建期间发生的 panic。 moby/buildkit#3899, moby/moby#45582
  • 修复在执行大量并发构建阶段时,构建可能因exit code: 4294967295而失败的问题。 moby/moby#45620
  • 修复 Windows 忽略 etc/hosts (%WINDIR%\System32\Drivers\etc\hosts) 的 DNS 解析,包括 localhost 的解析。 moby/moby#45562
  • 应用一个解决containerd漏洞的变通方法,该漏洞会导致并发docker exec命令的执行时间显著超过预期。 moby/moby#45625
  • containerd 镜像存储:修复一个镜像 Created 字段包含错误值的问题。 moby/moby#45623
  • containerd 镜像存储:调整镜像拉取进度的输出,使其格式在启用或未启用 containerd 镜像存储时保持一致。 moby/moby#45602
  • containerd 镜像存储:现在在默认镜像存储和 containerd 镜像存储之间切换需要重启守护进程。 moby/moby#45616

软件包更新

24.0.1

2023-05-19

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

已移除

  • 移除在24.0主要版本中删除的存储驱动程序的CLI自动补全。 docker/cli#4302

错误修复和功能增强

  • 修复一个外部服务器对DNS查询的NXDOMAIN回复被转发给客户端作为SERVFAIL的问题。 moby/moby#45573
  • 修复一个问题,其中 docker pull --platform 会报告关于指向同一镜像的另一个标签的 No such imagemoby/moby#45562
  • 修复在配置重载期间会忘记不安全注册表配置的问题。 moby/moby#45571
  • containerd 镜像存储:修复一个当镜像没有图层时不会在 docker images -a 中列出的问题 moby/moby#45588
  • API:修复一个问题,其中 GET /images/{id}/json 会返回 null 而不是空的 RepoTagsRepoDigestsmoby/moby#45564
  • API:修复一个问题,其中 POST /commit 不接受空的请求体。 moby/moby#45568

软件包更新

24.0.0

2023-05-16

关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:

  • 引入对 containerd 作为内容存储的实验性支持(替换现有的存储驱动程序)。 moby/moby#43735, 其他 moby/moby 拉取请求
  • --host CLI 标志现在支持在 ssh:// 主机地址中使用路径组件,允许在远程主机上无需配置即可使用备用套接字路径。 docker/cli#4073
  • docker info CLI 命令现在报告一个版本和平台字段。 docker/cli#4180
  • 引入守护程序标志 --default-network-opt 以配置新创建网络的选项。 moby/moby#43197
  • 在默认的 seccomp 配置文件中,限制对 AF_VSOCKsocket(2) 系列系统调用的访问。 moby/moby#44562
  • 在容器上引入对设置 OCI 运行时注释的支持。 docker/cli#4156,moby/moby#45025
  • 现在可以在 daemon.json 中配置替代运行时,启用运行时名称的别名设置并传递选项。 moby/moby#45032
  • docker-init Binaries现在将在符合 FHS 的 libexec 目录中被发现,除了 PATHmoby/moby#45198
  • API: 在 GET /info 中显示守护进程级的 --no-new-privilegesmoby/moby#45320

已移除

  • docker info 不再报告 IndexServiceAddressdocker/cli#4204
  • libnetwork: 移除用于过时内核版本的回退代码。 moby/moby#44684, moby/moby#44802
  • libnetwork: 移除与经典 Swarm 相关的未使用代码。 moby/moby#44965
  • libnetwork: 移除在加密的 Swarm overlay 网络中使用 xt_u32 内核模块。 moby/moby#45281
  • 移除对 BuildKit 已弃用的 buildinfo 的支持,改为使用标准的 provenance 证明。 moby/moby#45097
  • 移除已弃用的 AUFS 和旧版 overlay 存储驱动程序。 moby/moby#45342, moby/moby#45359
  • 移除已弃用的 overlay2.override_kernel_check 存储驱动选项。 moby/moby#45368
  • 从 AppArmor 配置文件中移除针对已废弃的 apparmor_parser 版本的变通方案。 moby/moby#45500
  • API:不再使用GET /images/json表示空的 RepoTags 和 RepoDigests,而是返回空数组(API >= 1.43)。现在使用<none>:<none>/<none>@<none>表示。moby/moby#45068

已弃用

  • 弃用 --oom-score-adjust 守护程序选项。 moby/moby#45315
  • API:弃用 VirtualSize 字段在 GET /images/jsonGET /images/{id}/json 中。 moby/moby#45346

错误修复和功能增强

软件包更新