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