Docker Engine 26.0 版本说明
本页介绍了 Docker Engine 26.0 的最新更改、新增功能、已知问题和修复内容。
关于以下内容的更多信息:
- 已弃用和移除的功能,请参见 已弃用的引擎功能。
- 引擎 API 的变更,请参阅 引擎 API 版本历史。
26.0.2
2024-04-18关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,26.0.2 里程碑
- moby/moby, 26.0.2 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
安全
此版本包含针对CVE-2024-32473的修复,该漏洞涉及仅IPv4接口上意外配置IPv6。CVE-2024-32473。
错误修复和功能增强
CVE-2024-32473: 确保仅分配了 IPv4 地址的接口已禁用 IPv6。 moby#GHSA-x84c-p2g9-rqv9
26.0.1
2024-04-11关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,26.0.1 里程碑
- moby/moby, 26.0.1 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
错误修复和功能增强
- 修复一个回归问题,该问题意味着网络接口特定的
--sysctl选项阻止了容器启动。 moby/moby#47646 - 从
docker save输出中删除镜像config的 OCI 描述符中的错误platform。 moby/moby#47694 - containerd 镜像存储:由
docker save生成的 OCI 存档现在在index.json中具有非空的mediaType字段 moby/moby#47701 - 修复一个回归问题,该问题阻止内部解析器将来自IPvlan L3网络的请求转发到外部解析器。 moby/moby#47705
- 防止在未指定父接口的情况下创建的 IPvlan 和 Macvlan 网络中使用外部解析器。 moby/moby#47705
软件包更新
- 更新 Go 运行时到 1.21.9 moby/moby#47671, docker/cli#4987
- 更新 Compose 至 v1.26.1 , docker/docker-ce-packaging#1009
- 更新 containerd 至 v1.7.15(仅静态Binaries) moby/moby#47692
26.0.0
2024-03-20关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,26.0.0 里程碑
- moby/moby, 26.0.0 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
安全
此版本包含针对CVE-2024-29018的安全修复,该漏洞可能导致通过权威DNS服务器从“内部”网络泄露数据。
新
- 向
VolumeOptions添加Subpath字段,使其能够挂载卷的子路径。 moby/moby#45687 - 为挂载标志添加对
volume-subpath的支持(当前为--mount type=volume,...,volume-subpath=<subpath>)。 docker/cli#4331 - 在compose文件中接受
=分隔符和[ipv6]用于docker stack deploy。 docker/cli#4860 - 无root权限: 通过将环境变量
DOCKERD_ROOTLESS_ROOTLESSKIT_DISABLE_HOST_LOOPBACK设置为false(默认为true)来添加对启用主机环回的支持。这使得容器可以通过使用 IP 地址10.0.2.2连接到主机。 moby/moby#47352 - containerd 镜像仓库:不再为多平台镜像创建重复条目。
docker image lsmoby/moby#45967 - containerd 镜像存储:发送 Prometheus 指标。 moby/moby#47555
错误修复和功能增强
CVE-2024-29018: 对仅连接到“internal”网络的容器,不要将请求转发到外部DNS服务器。此前,如果主机的DNS服务器运行在环回地址上(如systemd的127.0.0.53),请求会被转发。 moby/moby#47589
确保在容器重新启动时不会恢复生成的MAC地址,但已配置的MAC地址会被保留。 moby/moby#47233
警告
使用 Docker Engine 25.0.0 创建的容器可能具有重复的 MAC 地址,必须重新创建。 使用 25.0.0 或 25.0.1 版本并带有用户定义 MAC 地址的容器在使用 25.0.2 启动时将获得生成的 MAC 地址。它们也必须重新创建。
始终尝试在容器的环回接口上启用 IPv6,并且仅在成功时将 IPv6 包含在
/etc/hosts中。 moby/moby#47062注意
默认情况下,当容器未连接到启用IPv6的网络时,容器的环回接口上仍将启用IPv6。 例如,仅连接到仅IPv4网络的容器现在在其环回接口上具有
::1地址。要在容器中禁用IPv6, 在
create或run命令中使用选项--sysctl net.ipv6.conf.all.disable_ipv6=1, 或在 Compose 文件的服务配置部分使用等效的sysctls选项。如果容器中不可用IPv6,因为它已被明确禁用, 或主机的网络堆栈未启用IPv6(或任何其他原因), 容器的
/etc/hosts文件将不包括IPv6条目。修复在不支持 xattrs 的文件系统上解压缩包含 xattrs 的归档时,Dockerfile 指令
ADD因lsetxattr <file>: operation not supported而失败的问题。 moby/moby#47175修复在与
--checkpoint一起使用时docker container start出现失败的问题。 moby/moby#47456在主机与内部桥接网络上的容器之间恢复IP连接性。 moby/moby#47356
不对现有的 swarm 网络强制执行新的验证规则。 moby/moby#47361
在 Windows 上为默认的“nat”网络中的容器恢复 DNS 名称。 moby/moby#47375
在使用带模糊参数的
docker image ls时打印提示。 docker/cli#4849在 OpenBSD 上清理
@docker_cli_[UUID]个文件。 docker/cli#4862在使用未启用TLS的远程TCP连接时,添加明确的 弃用通知 消息。 docker/cli#4928, moby/moby#47556
使用主机
resolv.conf中的 IPv6 名称服务器作为 Docker Engine 内部 DNS 的上游解析器,而不是将其列在容器的resolv.conf中。 moby/moby#47512containerd 镜像存储:当使用
--userns-remap选项时,使用不同的 containerd 命名空间隔离镜像。 moby/moby#46786containerd 镜像存储:修复镜像拉取未发出
Pulling fs layer状态的问题。 moby/moby#47432
API
- 为了保持向后兼容性,在使用较旧的客户端(API 版本 < v1.44)时,默认情况下只读挂载不是递归的。 moby/moby#47391
GET /images/{id}/json如果镜像配置中缺少Created字段,则省略Created字段(之前是0001-01-01T00:00:00Z)。 moby/moby#47451- 在 API 版本 <= 1.43 中,使用
0001-01-01T00:00:00Z填充GET /images/{id}/json中缺失的Created字段。 moby/moby#47387 - 在
POST /images/search端点的结果中,is_automated字段现在始终为false。因此,搜索is-automated=true将不会有任何结果,而is-automated=false将不会执行任何操作。 moby/moby#47465 - 从
GET /images/{name}/json响应中移除Container和ContainerConfig字段。 moby/moby#47430
软件包更新
- 更新 BuildKit 至 v0.13.1。 moby/moby#47582
- 更新 Buildx 至 v0.13.1。 docker/docker-ce-packaging#1000
- 将 Compose 更新至 v2.25.0。 docker/docker-ce-packaging#1002
- 更新 Go 运行时到 1.21.8。 moby/moby#47502
- 更新 RootlessKit 到 v2.0.2。 moby/moby#47508
- 将 containerd 更新到 v1.7.13(仅静态Binaries) moby/moby#47278
- 更新 runc Binaries至 v1.1.12 moby/moby#47268
- 更新 OTel 至 v0.46.1 / v1.21.0 moby/moby#47245
已移除
从
GET /images/{name}/json响应中移除Container和ContainerConfig字段。 moby/moby#47430弃用在没有 TLS 的情况下接受远程 TCP 连接的能力。 弃用通知 docker/cli#4928 moby/moby#47556。
移除已弃用的 API 版本 (API < v1.24) moby/moby#47155
默认情况下禁用拉取已弃用的镜像格式。这些镜像格式已被弃用,将在未来的版本中移除支持。 moby/moby#47459
image: 移除已弃用的 IDFromDigest moby/moby#47198
移除已弃用的
github.com/docker/docker/pkg/loopback包。 moby/moby#47128pkg/system: 移除已弃用的
ErrNotSupportedOperatingSystem,IsOSSupportedmoby/moby#47129pkg/homedir: 移除已弃用的 Key() 和 GetShortcutString() moby/moby#47130
pkg/containerfs: 移除已弃用的 ResolveScopedPath moby/moby#47131
守护进程标志
--oom-score-adjust在 v24.0 中已被弃用,现已移除。 moby/moby#46113从 api/types 包中移除已弃用的别名。这些类型在 v25.0.0 中被弃用,该版本提供了临时别名。 moby/moby#47148 这些别名现已移除:
types.Info,types.Commit,types.PluginsInfo,types.NetworkAddressPool,types.Runtime,types.SecurityOpt,types.KeyValue,types.DecodeSecurityOptions,types.CheckpointCreateOptions,types.CheckpointListOptions,types.CheckpointDeleteOptions,types.Checkpoint,types.ImageDeleteResponseItem,types.ImageSummary,types.ImageMetadata,types.ServiceUpdateResponse,types.ServiceCreateResponse,types.ResizeOptions,types.ContainerAttachOptions,types.ContainerCommitOptions,types.ContainerRemoveOptions,types.ContainerStartOptions,types.ContainerListOptions,types.ContainerLogsOptionscli/command/container: 移除已弃用的
NewStartOptions()docker/cli#4811cli/command: 移除已弃用的
DockerCliOption,InitializeOptdocker/cli#4810