Docker Engine 26.0 发布说明

本页面描述了 Docker Engine 26.0 版本的最新更改、新增功能、已知问题和修复。

有关更多信息,请参阅:

26.0.2

2024-04-18

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

安全性

此版本包含针对 CVE-2024-32473 的安全修复,即 IPv4-only 接口上 IPv6 的意外配置。

错误修复和增强

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
  • docker stack deploy 的 compose 文件中接受 = 分隔符和 [ipv6]docker/cli#4860
  • rootless:通过将 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:对于仅连接到“内部”网络的容器,不要将请求转发到外部 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,并且只有在成功时才在 /etc/hosts 中包含 IPv6。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 的文件系统时,ADD Dockerfile 指令失败并显示 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#4928moby/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
  • 如果镜像配置中缺少 Created 字段,GET /images/{id}/json 会省略 Created 字段(此前为 0001-01-01T00:00:00Z)。moby/moby#47451
  • 对于 API 版本 <= 1.43,将 GET /images/{id}/json 中缺失的 Created 字段填充为 0001-01-01T00:00:00Zmoby/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:移除已弃用的 ErrNotSupportedOperatingSystemIsOSSupported 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.Infotypes.Committypes.PluginsInfotypes.NetworkAddressPooltypes.Runtimetypes.SecurityOpttypes.KeyValuetypes.DecodeSecurityOptionstypes.CheckpointCreateOptionstypes.CheckpointListOptionstypes.CheckpointDeleteOptionstypes.Checkpointtypes.ImageDeleteResponseItemtypes.ImageSummarytypes.ImageMetadatatypes.ServiceUpdateResponsetypes.ServiceCreateResponsetypes.ResizeOptionstypes.ContainerAttachOptionstypes.ContainerCommitOptionstypes.ContainerRemoveOptionstypes.ContainerStartOptionstypes.ContainerListOptionstypes.ContainerLogsOptions

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

  • cli/command:移除已弃用的 DockerCliOptionInitializeOpt docker/cli#4810

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.