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