Docker Engine 26.0 发行说明
本页介绍了 Docker Engine 版本 26.0 的最新更改、新增功能、已知问题和修复。
有关以下内容的更多信息:
- 已弃用和已删除的功能,请参阅已弃用的引擎功能。
- 对 Engine API 的更改,请参阅 Engine API 版本历史记录。
26.0.2
2024-04-18有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,26.0.2 里程碑
- Moby/Moby,26.0.2 里程碑
- 已弃用和已删除的功能,请参阅 已弃用的功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
安全
此版本包含 CVE-2024-32473 的安全修复程序,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/Moby,26.0.1 里程碑
- 已弃用和已删除的功能,请参阅 已弃用的功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
错误修复和增强功能
- 修复了一个回归问题,该问题意味着特定于网络接口的选项会阻止容器启动。白鲸/白鲸#47646
--sysctl
- 从输出中的镜像 OCI 描述符中删除错误。白鲸/白鲸#47694
platform
config
docker 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 里程碑
- 已弃用和已删除的功能,请参阅 已弃用的功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
安全
此版本包含 CVE-2024-29018 的安全修复程序,CVE-2024-29018 可能通过权威 DNS 服务器从“内部”网络泄露数据。
新增功能
- Add field 中,以便能够挂载卷的子路径。白鲸/白鲸#45687
Subpath
VolumeOptions
- 添加对挂载标志 () 的支持。docker/cli 命令 #4331
volume-subpath
--mount type=volume,...,volume-subpath=<subpath>
- 接受分隔符并在编写文件中接受 。docker/cli #4860 命令
=
[ipv6]
docker stack deploy
- rootless:通过将环境变量设置为 (默认为 ),添加对启用主机环回的支持。这允许容器使用 IP address 连接到主机。白鲸/白鲸#47352
DOCKERD_ROOTLESS_ROOTLESSKIT_DISABLE_HOST_LOOPBACK
false
true
10.0.2.2
- containerd 镜像存储:不再为多平台镜像创建重复条目。白鲸/白鲸 #45967
docker image ls
- 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,并且仅在成功时才包含 IPv6。白鲸/白鲸#47062
/etc/hosts
注意
默认情况下,当容器未连接到支持 IPv6 的网络时,IPv6 将在容器的环回接口上保持启用状态。 例如,仅连接到纯 IPv4 网络的容器现在在其环回接口上具有该地址。
::1
要在容器中禁用 IPv6, OR 命令中的 use 选项, 或 Compose 文件的 service configuration 部分中的等效选项。
--sysctl net.ipv6.conf.all.disable_ipv6=1
create
run
sysctls
如果 IPv6 在容器中不可用,因为已为容器显式禁用 IPv6,则 或者主机的网络堆栈未启用 IPv6(或出于任何其他原因) 容器的文件将不包含 IPv6 条目。
/etc/hosts
修复了在使用 xattrs 将存档解压缩到不支持它们的文件系统时 Dockerfile 指令失败的问题。白鲸/白鲸#47175
ADD
lsetxattr <file>: operation not supported
修复与 一起使用时失败的问题。白鲸/白鲸#47456
docker container start
--checkpoint
恢复内部桥接网络上的主机和容器之间的 IP 连接。白鲸/白鲸#47356
不要对现有 swarm 网络强制实施新的验证规则。白鲸/白鲸#47361
恢复 Windows 上默认 “nat” 网络中容器的 DNS 名称。白鲸/白鲸 #47375
使用模棱两可的参数调用时打印提示。docker/cli #4849
docker image ls
清理 OpenBSD 上的文件。docker/cli 命令 #4862
@docker_cli_[UUID]
在不使用 TLS 的远程 TCP 连接时添加显式弃用通知消息。docker/cli#4928、moby/moby#47556
使用主机的 IPv6 名称服务器作为 Docker Engine 内部 DNS 的上游解析器,而不是在容器的 .白鲸/白鲸#47512
resolv.conf
resolv.conf
containerd image store:使用 option 时隔离具有不同 containerd 命名空间的镜像。白鲸/白鲸#46786
--userns-remap
containerd image store:修复镜像拉取不发出状态的问题。白鲸/白鲸#47432
Pulling fs layer
应用程序接口
- 为了保持向后兼容性,在使用较旧的客户端(API 版本 < v1.44)时,只读挂载默认不是递归的。白鲸/白鲸#47391
GET /images/{id}/json
如果镜像配置中缺少该字段,则省略该字段(以前为 )。白鲸/白鲸#47451Created
0001-01-01T00:00:00Z
Created
- 在 中填充 API 版本 <= 1.43 的缺失字段。白鲸/白鲸#47387
Created
GET /images/{id}/json
0001-01-01T00:00:00Z
- 终端节点结果中的字段始终为 now。因此,搜索 不会产生任何结果,而 no op将是一个 no-op。白鲸/白鲸#47465
is_automated
POST /images/search
false
is-automated=true
is-automated=false
- 从响应中删除 and 字段。白鲸/白鲸 #47430
Container
ContainerConfig
GET /images/{name}/json
打包更新
- 更新 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
删除
从响应中删除 and 字段。白鲸/白鲸 #47430
Container
ContainerConfig
GET /images/{name}/json
弃用接受没有 TLS 的远程 TCP 连接的功能。弃用通知 docker/cli#4928 moby/moby#47556。
删除已弃用的 API 版本(API < v1.24)moby/moby#47155
默认情况下,禁用拉取已弃用的镜像格式。这些镜像格式已弃用,并且在将来的版本中将删除支持。白鲸/白鲸#47459
图片:删除已弃用的 IDFromDigest moby/moby#47198
删除已弃用的软件包。白鲸/白鲸#47128
github.com/docker/docker/pkg/loopback
pkg/system:删除已弃用的 moby/moby#47129
ErrNotSupportedOperatingSystem
IsOSSupported
pkg/homedir:删除已弃用的 Key() 和 GetShortcutString() moby/moby#47130
pkg/containerfs:删除已弃用的 ResolveScopedPath moby/moby#47131
守护进程标志在 v24.0 中已弃用,现已删除。白鲸/白鲸#46113
--oom-score-adjust
从 api/types 包中删除已弃用的别名。这些类型在 v25.0.0 中已弃用,它提供了临时别名。白鲸/白鲸#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:移除已弃用的 docker/cli#4811
NewStartOptions()
cli/command: 删除已弃用的 , docker/cli#4810
DockerCliOption
InitializeOpt