Docker Engine 26.0 版本说明

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

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

26.0.2

2024-04-18

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

安全

此版本包含针对CVE-2024-32473的修复,该漏洞涉及仅IPv4接口上意外配置IPv6。CVE-2024-32473

错误修复和功能增强

26.0.1

2024-04-11

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

错误修复和功能增强

  • 修复一个回归问题,该问题意味着网络接口特定的--sysctl选项阻止了容器启动。 moby/moby#47646
  • docker save 输出中删除镜像 config 的 OCI 描述符中的错误 platformmoby/moby#47694
  • containerd 镜像存储:由 docker save 生成的 OCI 存档现在在 index.json 中具有非空的 mediaType 字段 moby/moby#47701
  • 修复一个回归问题,该问题阻止内部解析器将来自IPvlan L3网络的请求转发到外部解析器。 moby/moby#47705
  • 防止在未指定父接口的情况下创建的 IPvlan 和 Macvlan 网络中使用外部解析器。 moby/moby#47705

软件包更新

26.0.0

2024-03-20

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

安全

此版本包含针对CVE-2024-29018的安全修复,该漏洞可能导致通过权威DNS服务器从“内部”网络泄露数据。

  • VolumeOptions 添加 Subpath 字段,使其能够挂载卷的子路径。 moby/moby#45687
  • 为挂载标志添加对volume-subpath的支持(当前为--mount type=volume,...,volume-subpath=<subpath>)。 docker/cli#4331
  • 在compose文件中接受=分隔符和[ipv6]用于docker stack deploydocker/cli#4860
  • 无root权限: 通过将环境变量 DOCKERD_ROOTLESS_ROOTLESSKIT_DISABLE_HOST_LOOPBACK 设置为 false(默认为 true)来添加对启用主机环回的支持。这使得容器可以通过使用 IP 地址 10.0.2.2 连接到主机。 moby/moby#47352
  • containerd 镜像仓库:不再为多平台镜像创建重复条目。docker image ls moby/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, 在 createrun 命令中使用选项 --sysctl net.ipv6.conf.all.disable_ipv6=1, 或在 Compose 文件的服务配置部分使用等效的 sysctls 选项。

    如果容器中不可用IPv6,因为它已被明确禁用, 或主机的网络堆栈未启用IPv6(或任何其他原因), 容器的/etc/hosts文件将不包括IPv6条目。

  • 修复在不支持 xattrs 的文件系统上解压缩包含 xattrs 的归档时,Dockerfile 指令 ADDlsetxattr <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#47512

  • containerd 镜像存储:当使用 --userns-remap 选项时,使用不同的 containerd 命名空间隔离镜像。 moby/moby#46786

  • containerd 镜像存储:修复镜像拉取未发出 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 响应中移除 ContainerContainerConfig 字段。 moby/moby#47430

软件包更新

已移除

  • GET /images/{name}/json 响应中移除 ContainerContainerConfig 字段。 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#47128

  • pkg/system: 移除已弃用的 ErrNotSupportedOperatingSystem, IsOSSupported moby/moby#47129

  • pkg/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.ContainerLogsOptions

  • cli/command/container: 移除已弃用的 NewStartOptions() docker/cli#4811

  • cli/command: 移除已弃用的 DockerCliOption, InitializeOpt docker/cli#4810