Docker Engine 27 版本发布说明

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

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

27.4

Docker Engine 27.4 版本的发布说明。

27.4.0

2024-12-09

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

API

  • GET /images/json 启用 manifests 选项后,现在保留了清单索引中清单出现的原始顺序。 moby/moby#48712

错误修复和功能增强

  • 在使用 jsonfilelocal 日志驱动程序读取日志时,如果在尝试读取或解析底层日志文件时出现任何错误,将跳过文件的其余部分并转到下一个日志文件(如果存在),而不是向客户端返回错误并关闭流。当配置了跟踪时,这些错误可在 Docker 守护程序日志中查看并导出到跟踪中。 moby/moby#48842
  • 在读取日志文件时,压缩的日志文件现在仅在需要时才进行解压缩,而不是在开始日志流之前解压缩所有文件。 moby/moby#48842
  • 修复一个导致在桥接网络上,当 userland-proxy 禁用且内核的 br_netfilter 模块未加载和启用时,一个容器发布的端口无法被同一网络上的另一个容器访问的问题。现在,当创建网络且用户空间代理被禁用时,守护进程将尝试加载该模块并启用 bridge-nf-call-iptablesbridge-nf-call-ip6tablesmoby/moby#48685
  • 修复加载内核模块 bridgebr_netfilter 的问题。 moby/moby#48966
  • containerd 镜像存储:修复使用 containerd 快照器和大量构建/镜像时,Docker 守护进程因“context deadline exceeded error”而无法完全启动的问题。 moby/moby#48954
  • containerd 镜像存储:修复部分拉取的镜像未被垃圾回收的问题。 moby#48910, moby/moby#48957
  • containerd 镜像存储:修复 docker image inspectRepoDigests 中输出重复引用的问题。 moby/moby#48785
  • containerd 镜像存储:修复在某些情况下由于非 TLS 相关错误导致 HTTPS 请求失败时,无法连接到某些不安全的注册表的问题。 moby/moby#48758
  • containerd 镜像存储:在标记非悬空镜像时,移除一个令人困惑的警告日志。 moby/moby#49010
  • containerd 镜像存储:不要在 docker image ls --tree 中给名称加下划线。 docker/cli#5519
  • containerd 镜像存储:将 USED 列在 docker image ls --tree 中的名称更改为 IN USEdocker/cli#5518
  • dockerd-rootless-setuptool.sh install --force 现在忽略 RootlessKit 错误 moby/moby#48695
  • 禁用分配给桥接网络所属网桥的地址的IPv6重复地址检测(DAD)。 moby/moby#48684
  • 移除 BuildKit 初始化超时。 moby/moby#48963
  • 在ZFS上移除数据集时忽略“数据集不存在”错误。 moby/moby#48968
  • 客户端:防止空闲连接泄露文件描述符。 moby/moby#48764
  • 修复通过 --mount 选项创建的匿名卷未被标记为匿名的问题。 moby/moby#48755
  • 在守护进程重启并启用 live-restore 后,确保 iptables 跳转到 DOCKER-USER 链的规则位于其他规则之前。 moby/moby#48714
  • 修复由 OTel 计量器引起的潜在内存泄漏。 moby/moby#48693
  • 为每个镜像存储创建独立的构建历史数据库。 moby/moby#48688
  • 修复在 DNS 解析进行紧密循环时导致内存使用过高的问题。 moby/moby#48840
  • 修复一个阻止在docker run期间取消镜像拉取的错误。 docker/cli#5654
  • 命令 docker logindocker logout 在凭据未更改时不再更新配置文件。 docker/cli#5569
  • 优化 docker stats 以减少闪烁问题。 docker/cli#5588, docker/cli#5635
  • 修复无法访问的插件路径,防止插件被检测到。 docker/cli#5652
  • 为 cobra 生成的 shell 补全添加对 events --filter 的支持。 docker/cli#5614
  • 修复 events --filter daemon= 的 bash 补全。 docker/cli#5563
  • 改善容器的 shell 补全功能,适用于 docker rmdocker/cli#5540
  • --platform标志添加shell自动补全。 docker/cli#5540
  • rootless: 使 /etc/cdi/var/run/cdi 可通过容器设备接口(CDI)集成访问。 moby/moby#49027

已移除

  • 弃用 Daemon.Exists()Daemon.IsPaused()。这些功能不再使用,将在下一个版本中移除。 moby/moby#48719
  • 弃用 container.ErrNameReservedcontainer.ErrNameNotReservedmoby/moby#48697
  • 弃用 pkg/platform - 此包仅在内部使用,将在下一个版本中移除。 moby/moby#48863
  • 弃用 RepositoryInfo.Class。此字段不再使用,将在下一个版本中删除。 moby/moby#49013
  • Go SDK:修复cli/command.ConfigureAuth()的弃用,该弃用自v27.2.1起已存在。 docker/cli#5552
  • Go SDK: 停用 cli.Errors 类型,改用 Go 的 errors.Join docker/cli#5548

软件包更新

27.3

Docker Engine 27.3 版本的发布说明。

27.3.1

2024-09-20

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

错误修复和功能增强

软件包更新

27.3.0

2024-09-19

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

错误修复和功能增强

  • containerd 镜像存储:修复 docker image prune -a 从带有摘要引用的镜像启动的容器使用的镜像的取消标记问题。 moby/moby#48488
  • 在守护进程选项中添加 --feature 标志。 moby/moby#48487
  • 更新了对--gpus=0标志的处理,以与 NVIDIA 容器运行时保持一致。 moby/moby#48483
  • 支持WSL2镜像模式网络将接口loopback0用于来自Windows主机的数据包。 moby/moby#48514
  • 修复一个在 IPv4 桥接网络上运行时阻止容器之间通信的问题,当使用 --iptables=false--ip6tables=true(默认值),在主机上防火墙对转发的数据包有 DROP 规则且 br_netfilter 内核模块通常未加载的情况下。 moby/moby#48511
  • CLI:修复当未传递参数/卷时,docker volume update 命令会导致 CLI 崩溃的问题。 docker/cli#5426
  • CLI:在 Windows 上的 WSL 环境中运行时正确报告指标。 docker/cli#5432

软件包更新

27.2

Docker Engine 27.2 版本的发布说明。

27.2.1

2024-09-09

错误修复和功能增强

  • containerd 镜像存储:修复非容器镜像在 docker image ls 输出中被隐藏的问题。 moby/moby#48402
  • containerd 镜像存储:当镜像平台不匹配时,改进docker pull错误消息。 moby/moby#48415
  • CLI:修复导致docker login无法从传入的注册表地址中移除仓库名称的问题,从而导致凭据被存储在错误的键下。 docker/cli#5385
  • CLI:修复在等待用户进行身份验证时,如果 CLI 进程被挂起然后恢复,有时会导致浏览器登录流程失败的问题。 docker/cli#5376
  • CLI: docker login 现在会在非交互式调用且没有 --user 的情况下返回错误,而不是挂起,即使带有 --password--password-stdindocker/cli#5402

软件包更新

27.2.0

2024-08-27

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

本次发布的新功能包括:

设备代码登录

此版本增加了在登录 Docker Hub 时使用设备码登录的支持。

你仍然可以使用旧方法,通过用户名和密码或访问令牌登录,但设备代码登录更安全,且不需要你在命令行界面输入密码。

device-code-login
设备代码登录

要使用旧方法,请使用 docker login -u <username>

docker image ls的多平台支持

实验性

这是实验性的,可能会随时更改,且不保证向后兼容性。

启用 containerd 镜像存储后,docker image ls 命令(或 docker images 简写)现在支持 --tree 标志,用于显示镜像是否为多平台镜像。

API

  • GET /images/json 响应现在包含 Manifests 字段,其中包含有关镜像索引中包含的子清单的信息。这包括平台特定的清单和构建证明。

    新字段仅在请求同时将manifests查询参数设置为true时才会被填充。

    实验性

    这是实验性的,可能会随时更改,且不保证向后兼容性。

错误修复和功能增强

  • CLI:修复通过SSH远程上下文连接到远程主机时,CLI会分配伪TTY的问题,这在极少数情况下会导致问题。 docker/cli#5351
  • 修复一个阻止在网络创建时以--ip-range结束于64位边界的问题。 moby/moby#48326
  • CLI:端口绑定中显示为docker ps的IPv6地址现在使用方括号括起来。 docker/cli#5365
  • containerd 镜像存储:修复在解压镜像会失败的情况下,从 docker load 退出时的早期错误。 moby/moby#48376
  • containerd 镜像存储:修复在 docker pull 之后前一个镜像未作为悬空镜像持久化的问题。 moby/moby#48380

软件包更新

已知问题

  • 在 Docker CLI 中针对仓库进行身份验证时(docker login [registry address]),如果提供的仓库地址包含仓库/镜像名称(例如 docker login index.docker.io/docker/welcome-to-docker),则仓库部分(docker/welcome-to-docker)不会被规范化,从而导致凭据被错误存储,这会导致后续从仓库拉取镜像(docker pull index.docker.io/docker/welcome-to-docker)时无法通过身份验证。为避免此问题,在运行 docker login 时,请不要在仓库地址中包含任何多余的后缀。

    注意

    使用 docker login 并包含 URL 路径段的地址不属于文档化的使用场景,被视为不受支持。建议的用法是仅为 docker login 指定仓库主机名,可选地指定端口。

27.1

Docker Engine 27.1 版本的发布说明。

27.1.2

2024-08-13

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

错误修复和功能增强

  • 修复一个回归问题,该问题可能导致从大型 Dockerfile 构建时出现 ResourceExhausted desc = grpc: received message larger than max 错误。 moby/moby#48245
  • CLI:修复docker attach打印出多余的context cancelled错误信息的问题。 docker/cli#5296
  • CLI:修复在SIGINT上退出docker attach,而不是将信号转发给容器并等待其退出。 docker/cli#5302
  • CLI:修复--device-read-bps--device-write-bps 选项不生效的问题。 docker/cli#5339
  • CLI:修复在某些情况下运行插件时发生的 panic 错误。 docker/cli#5337

软件包更新

27.1.1

2024-07-23

安全

此版本包含对使用访问控制的设置中受影响的 CVE-2024-41110 / GHSA-v23v-6jw2-98fq 的修复,这些设置使用了 授权插件 (AuthZ) 。除上述修复外,此版本未包含其他更改,对于未使用 AuthZ 插件的用户,此版本基本相同。

软件包更新

27.1.0

2024-07-22

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

错误修复和功能增强

  • 无root权限: 添加Requires=dbus.socket以防止在使用systemd的cgroup v2主机上启动守护程序时出现错误 moby/moby#48141
  • containerd 集成:使用 BuildKit 构建镜像时,现在会正确发出 image tag 事件 moby/moby#48182
  • CLI: 为 docker image rm, docker image history, 和 docker image inspect 启用 shell 补全 moby/moby#5261
  • CLI:为各种标志添加并改进 shell 自动补全 moby/moby#5261
  • CLI:将 OOMScoreAdj 添加到 docker service createdocker stack docker/cli#5274
  • CLI:为DOCKER_CUSTOM_HEADERS环境变量添加支持(实验性) docker/cli#5271
  • CLI: containerd-integration: 修复在不受支持的 API 版本上将环境变量默认为 docker push--platform 标志设置为 DOCKER_DEFAULT_PLATFORM 的问题 docker/cli#5248
  • CLI:修复:在 login 提示下取消上下文 docker/cli#5260
  • CLI:修复:在向CLI发送终止请求时,等待容器退出后再关闭流,而此时已附加到容器上 docker/cli#5250

已弃用

  • pkg/rootless/specconv 包已弃用,将在下一个版本中删除 moby/moby#48185
  • pkg/containerfs 包已弃用,将在下一个版本中删除 moby/moby#48185
  • pkg/directory 包已弃用,将在下一个版本中删除 moby/moby#48185
  • api/types/system: 移除已弃用的 Info.ExecutionDriver moby/moby#48184

软件包更新

27.0

Docker Engine 27.0 的发布说明。

27.0.3

2024-07-01

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

错误修复和功能增强

  • 修复一个回归问题,该问题错误地将从主机IPv6地址到仅IPv4容器的端口映射报告为错误。 moby/moby#48090
  • 修复一个回归问题,该问题在创建网络时导致重复的子网分配。 moby/moby#48089
  • 修复一个回归问题,当在支持带用户命名空间的本机 overlay 的系统上启用 rootless 并尝试拉取镜像时,会出现 fail to register layer: failed to Lchown 错误。 moby/moby#48086

27.0.2

2024-06-27

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

错误修复和功能增强

已移除

  • api/types: 废弃 ContainerJSONBase.Node 字段和 ContainerNode 类型。这些定义曾被独立的("classic")Swarm API 使用,但从未在 Docker Engine 中实现。 moby/moby#48055

27.0.1

2024-06-24

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

  • containerd 镜像存储:为 --platform 添加 docker image push 标志,并改进在本地不可用多平台镜像的所有平台时的默认行为。 docker/cli#4984, moby/moby#47679
  • 为服务的网络添加对 docker stack deploydriver_opts 的支持。 docker/cli#5125
  • 在查找以docker-前缀命名的用户空间代理Binaries时,考虑额外的/usr/local/libexec/usr/libexec路径。 moby/moby#47804

错误修复和功能增强

  • *client.Client 实例现在始终对多个 goroutine 的并发使用是安全的。之前,在使用 WithAPIVersionNegotiation() 选项时,这可能导致数据竞争。 moby/moby#47961
  • 修复导致 Docker CLI 在某些情况下在 $TMPDIR 泄漏 Unix 套接字的错误。 docker/cli#5146
  • 不要忽略与--privileged结合使用时的自定义seccomp配置文件。 moby/moby#47500
  • 无根模式: overlay2: 在 Linux 内核版本 5.11 及更高版本中使用无根模式时,支持原生 overlay diff。 moby/moby#47605
  • 将 healthcheck 的默认值 0 修复为文档中所述的 5s。 moby/moby#47799
  • 修复在用户取消操作(例如使用 Ctrl+C)时,docker savedocker load 在守护进程端未正常结束的问题。 moby/moby#47629
  • 容器的 StartedAt 属性现在在容器启动前被记录,保证 StartedAt 总是在 FinishedAt 之前。 moby/moby#47003
  • Windows 上的 Windows 容器使用的内部 DNS 解析器现在默认将请求转发到外部 DNS 服务器。这使得 nslookup 能够解析外部主机名。可以通过 daemon.json 使用 "features": { "windows-dns-proxy": false } 来禁用此行为。此配置选项将在未来的版本中移除。 moby/moby#47826
  • 当CLI没有权限读取配置文件时打印警告。 docker/cli#5077
  • 修复容器附加时的 goroutine 和文件描述符泄漏。 moby/moby#45052
  • 在守护进程启动期间清除所有已停止或已死亡容器的网络状态。 moby/moby#47984
  • 以原子方式写入卷选项 JSON,以避免系统崩溃后出现“无效 JSON”错误。 moby/moby#48034
  • 允许使用相同父级的多个 macvlan 网络。 moby/moby#47318
  • 允许在支持的 Windows 守护程序上使用 BuildKit。 docker/cli#5178

网络

  • 在创建容器和连接网络期间,允许按接口设置sysctls。 moby/moby#47686
    • 在未来版本中,这将是设置按接口sysctl选项的唯一方式。 例如,在docker run命令的命令行中,--network mynet --sysctl net.ipv4.conf.eth0.log_martians=1将被拒绝。 相反,您必须使用--network name=mynet,driver-opt=com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1
IPv6
  • ip6tables 不再是实验性的。如果其他功能不需要,您可以删除 experimental 配置选项并继续使用 IPv6。
  • ip6tables 默认情况下现在已为 Linux 桥接网络启用。moby/moby#47747
    • 这使得IPv4和IPv6的行为彼此保持一致,并降低了IPv6启用的容器无意中暴露给网络的风险。
    • 如果您使用的是启用ip6tables的Docker Engine(新的默认设置),则没有影响。
    • 如果您使用的是未启用ip6tables的IPv6启用的桥接网络,这可能是一个破坏性变更。只有发布的容器端口(-p--publish)可以从Docker桥接网络外部访问,而外出连接会伪装为主机。
    • 要恢复早期版本的行为,完全不使用ip6tables,在daemon.json中设置"ip6tables": false,或使用CLI选项--ip6tables=false。或者,保留ip6tables启用,发布端口,并启用直接路由。
    • 启用ip6tables后,如果您的主机上ip6tables不可用,Docker Engine将启动,但无法创建IPv6启用的网络。
IPv6网络配置改进
  • 如果此参数未手动配置,或者不包含任何 IPv6 前缀,则会自动将唯一本地地址(ULA)基本前缀添加到 default-address-poolsmoby/moby#47853
    • 在此版本之前,要创建支持 IPv6 的网络,需要使用 --subnet 选项指定 IPv6 子网,或在 daemon.json 中向 default-address-pools 添加 IPv6 范围。
    • 从本版本开始,当使用 --ipv6 创建桥接网络且这些选项未定义 IPv6 子网时,将使用 IPv6 唯一本地地址(ULA)基本前缀。
    • ULA 前缀源自引擎主机 ID,因此在主机之间和随时间推移都是唯一的。
  • 现在可以将任意大小的 IPv6 地址池添加到 default-address-poolsmoby/moby#47768
  • 现在可以在所有自定义桥接网络上默认启用 IPv6,方法是在 "default-network-opts": { "bridge": {"com.docker.network.enable_ipv6": "true"}} 中使用 daemon.json,或在命令行中使用 dockerd --default-network-opt=bridge=com.docker.network.enable_ipv6=truemoby/moby#47867
  • IPv6 网络的直接路由,启用 ip6tablesmoby/moby#47871
    • 新增了桥接驱动程序选项 com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>
    • 默认行为 nat 与启用 ip6tables 的先前版本保持不变。为每个发布的容器端口设置NAT和伪装规则。
    • 当设置为 routed 时,不会为发布的端口配置NAT或伪装规则。如果主机网络能够将容器地址的数据包路由到主机,则可直接通过IPv6访问容器。发布的端口将在容器防火墙中打开。
    • 当端口映射仅适用于 routed 模式时,仅允许地址 0.0.0.0::,并且不得指定主机端口。
    • 请注意,在 natrouted 模式下发布的容器端口,如果网络中设置了路由,则可以从任何远程地址访问,除非Docker主机的防火墙有额外限制。例如: docker network create --ipv6 -o com.docker.network.bridge.gateway_mode_ipv6=routed mynet
    • 还提供了选项 com.docker.network.bridge.gateway_mode_ipv4=<nat|routed>,行为相同,但针对IPv4。
  • 如果主机上运行了 firewalld,Docker 会创建策略 docker-forwarding 以允许从任何区域转发到 docker 区域。这使得可以配置具有可路由 IPv6 地址的桥接网络,且无需进行 NAT 或伪装。 moby/moby#47745
  • 当发布端口时未指定主机端口,或指定了主机端口范围,IPv4 和 IPv6 将分配相同的端口。 moby/moby#47871
    • 例如,-p 80 将导致 0.0.0.0:: 分配相同的临时端口,而 -p 8080-8083:80 将为两个地址族从范围中选择相同的端口。
    • 类似地,发布到特定地址的端口将分配相同的端口。例如,-p 127.0.0.1::80 -p '[::1]::80'
    • 如果所需的所有地址上均无可用端口,容器创建将失败。
  • 从 26.1.1 版本引入的环境变量 DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE 已不再生效。 moby/moby#47963
    • 如果由于 /proc/sys/net 只读而导致无法在接口上禁用 IPv6,该环境变量允许容器继续启动。
    • 在本版本中,如果无法为接口禁用 IPv4,可以通过在创建网络时使用 --ipv6 明确启用 IPv6。其他变通方法包括:将操作系统配置为在新接口上默认禁用 IPv6、以读写方式挂载 /proc/sys/net,或使用不支持 IPv6 的内核。
  • 对于启用 IPv6 的桥接网络,请勿尝试使用 fe80::1 替换桥接的内核分配的链路本地地址。 moby/moby#47787

已移除

  • 弃用实验性的 GraphDriver 插件。 moby/moby#48050, docker/cli#5172
  • pkg/archive: 废弃 NewTempArchiveTempArchive。这些类型仅在测试中使用,并将在下一个版本中删除。 moby/moby#48002
  • pkg/archive: 废弃 CanonicalTarNameForPath moby/moby#48001
  • 弃用 pkg/dmesg。此包不再使用,将在下一个版本中删除。 moby/moby#47999
  • 弃用 pkg/stringid.ValidateIDpkg/stringid.IsShortID moby/moby#47995
  • runconfig: 废弃 SetDefaultNetModeIfBlank 并将 ContainerConfigWrapper 移动到 api/types/container moby/moby#48007
  • runconfig: 废弃 DefaultDaemonNetworkMode 并切换到 daemon/network moby/moby#48008
  • runconfig: 废弃 opts.ConvertKVStringsToMap。此工具不再使用,将在下一个版本中删除。 moby/moby#48016
  • runconfig: 废弃 IsPreDefinedNetwork. moby/moby#48011

API

  • containerd 镜像存储:现在支持 POST /images/{name}/push 参数(JSON 编码的 OCI 平台类型),可从多平台镜像中选择特定的平台清单。此功能为实验性,未来 API 版本可能会更改。 moby/moby#47679
  • POST /services/createPOST /services/{id}/update 现在支持 OomScoreAdjmoby/moby#47950
  • ContainerList api 返回容器注解。 moby/moby#47866
  • POST /containers/createPOST /services/create 现在将 Options 作为 HostConfig.Mounts.TmpfsOptions 的一部分,允许为 tmpfs 挂载设置选项。 moby/moby#46809
  • 在使用低于 v1.44 的 API 版本更新 Swarm 服务时,现在会正确忽略 Healthcheck.StartInterval 属性。 moby/moby#47991
  • GET /events 现在支持镜像 create 事件,当构建新镜像时会触发此事件,无论该镜像是否被打上标签。 moby/moby#47929
  • GET /info 现在包含一个 Containerd 字段,其中包含有关容器运行时和插件所用容器守护进程的 containerd API 套接字位置和 containerd 命名空间的信息。 moby/moby#47239
  • 弃用镜像检查输出中的非标准(配置)字段。此端点返回的Config字段(用于docker image inspect)返回了不属于镜像配置且不属于 Docker 镜像规范OCI 镜像规范的额外字段。这些字段从未被设置(并且始终返回类型的默认值),但当留空时不会在响应中被省略。由于这些字段不打算作为镜像配置响应的一部分,因此已被弃用,并将在未来的 API 版本中移除。
  • 弃用守护程序标志 --api-cors-header 和相应的 daemon.json 配置选项。这些将在下一个主要版本中删除。 moby/moby#45313

以下已弃用的字段目前包含在 API 响应中,但不是底层镜像的 Config 的一部分: moby/moby#47941

  • Hostname
  • Domainname
  • AttachStdin
  • AttachStdout
  • AttachStderr
  • Tty
  • OpenStdin
  • StdinOnce
  • Image
  • NetworkDisabled(除非设置,否则已省略)
  • MacAddress(除非设置,否则已省略)
  • StopTimeout(除非设置,否则已省略)

Go SDK 变更

  • 以下函数的客户端 API 回调现在需要一个上下文参数。 moby/moby#47536
    • client.RequestPrivilegeFunc
    • client.ImageSearchOptions.AcceptPermissionsFunc
    • image.ImportOptions.PrivilegeFunc
  • 移除 Image 类型的弃用别名。 moby/moby#47900
    • ImageImportOptions
    • ImageCreateOptions
    • ImagePullOptions
    • ImagePushOptions
    • ImageListOptions
    • ImageRemoveOptions
  • github.com/docker/go-units.Ulimit引入Ulimit类型别名。 API中使用的Ulimit类型定义在一个Go模块中,该模块将在未来迁移到新位置。 添加类型别名以减少将类型移动到新位置带来的摩擦。 该别名确保现有代码继续正常运行,但其定义可能会在未来发生变化。 建议用户使用此别名,而不是直接使用units.Ulimitmoby/moby#48023

移动和重命名类型,更改它们的导入路径和导出名称。 moby/moby#47936, moby/moby#47873, moby/moby#47887, moby/moby#47882, moby/moby#47921, moby/moby#48040

  • 将以下类型移动到 api/types/container:
    • BlkioStatEntry
    • BlkioStats
    • CPUStats
    • CPUUsage
    • ContainerExecInspect
    • ContainerPathStat
    • ContainerStats
    • ContainersPruneReport
    • CopyToContainerOptions
    • ExecConfig
    • ExecStartCheck
    • MemoryStats
    • NetworkStats
    • PidsStats
    • StatsJSON
    • Stats
    • StorageStats
    • ThrottlingData
  • 将以下类型移动到 api/types/image:
    • ImagesPruneReport
    • ImageImportSource
    • ImageLoadResponse
  • ExecStartOptions 类型移动到 api/types/backend
  • VolumesPruneReport 类型移动到 api/types/volume
  • EventsOptions 类型移动到 api/types/events
  • ImageSearchOptions 类型移动到 api/types/registry
  • 去掉前缀Network,并将以下类型移至api/types/network
    • NetworkCreateResponse
    • NetworkConnect
    • NetworkDisconnect
    • NetworkInspectOptions
    • EndpointResource
    • NetworkListOptions
    • NetworkCreateOptions
    • NetworkCreateRequest
    • NetworksPruneReport
  • NetworkResource 移动到 api/types/network

软件包更新

27.0.0

由于在 GitHub 上对 27.0.0-rc.1 进行预发布时出现错误,导致创建了 v27.0.0 标签,因此没有发布 27.0.0 版本。 不幸的是,该标签已被 Go 模块镜像抓取,因此无法干净地更改 v27.0.0。 为解决此问题,27.0.1 将作为 27.0 系列的第一个正式版本发布。