Docker Engine 27 版本发行说明
本页面描述了 Docker Engine 27 版本的最新变更、新增功能、已知问题和修复。
有关更多信息,请参阅:
- 已弃用和已移除的功能,请参阅已弃用的 Engine 功能。
- Engine API 的变更,请参阅 Engine API 版本历史。
27.5
Docker Engine 27.5 版本的发行说明。
27.5.1
2025-01-22有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 修复了在初始化默认网桥失败后可能持续阻止守护程序启动的问题。moby/moby#49307
- 添加
DOCKER_IGNORE_BR_NETFILTER_ERROR环境变量。将其设置为1允许在无法加载br_netfilter的主机上运行。某些功能将无法工作,包括在桥接网络中禁用容器间通信。如果禁用了用户空间代理,则无法从同一网络上的另一个容器访问某个容器已发布的端口。moby/moby#49306
软件包更新
- 将 Go 运行时更新至 1.22.11(修复 CVE-2024-45341、CVE-2024-45336)。moby/moby#49312, docker/docker-ce-packaging#1147, docker/cli#5762
- 将 RootlessKit 更新至 v2.3.2,以支持
passt>= 2024_10_30.ee7d0b6。moby/moby#49304 - 将 Buildx 更新至 v0.20.0。docker/docker-ce-packaging#1149
27.5.0
2025-01-13有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- containerd 镜像存储:修复通过 tarball 将构建上下文传递给
/build端点的问题。moby/moby#49194 - 没有
keepStorage值的构建器垃圾回收策略现在按预期继承defaultKeepStorage限制。moby/moby#49137 - 在守护程序启动期间保留网络标签。moby/moby#49200
- 修复了删除容器时可能出现的竞争条件错误。moby/moby#49239
Go SDK
pkg/sysinfo:弃用NumCPU。此实用程序与runtime.NumCPU具有相同的行为。moby/moby#49247pkg/fileutils:弃用GetTotalUsedFds:此函数仅在内部使用,将在下一个版本中移除。moby/moby#49209pkg/ioutils:弃用BytesPipe、NewBytesPipe、ErrClosed、WriteCounter、NewWriteCounter、NewReaderErrWrapper、NopFlusher、NopWriter、NopWriteCloser。它们仅在内部使用,将在下一个版本中移除。moby/moby#49246, moby/moby#49255pkg/reexec:此包已弃用并移至单独的模块。请改用github.com/moby/sys/reexec。moby/moby#49135
软件包更新
- 将 containerd 更新至 v1.7.25 moby/moby#49253
- 将
runc更新至 v1.2.4 moby/moby#49243 - 将 BuildKit 更新至 v0.18.2 moby/moby#48949
- 将 Compose 更新至 v2.32.2 docker/docker-ce-packaging#1140
27.4
Docker Engine 27.4 版本的发行说明。
27.4.1
2024-12-18有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- 修复了未配置 OTel 时内存分配过多的问题。moby/moby#49079
docker info命令和相应的GET /infoAPI 端点在守护程序启动时bridge-nf-call-iptables或bridge-nf-call-ip6tables被禁用的情况下不再包含警告。现在会在需要时尝试加载br_netfilter内核模块,这使得这些警告不准确。moby/moby#49090- 尝试在需要时使用在 Docker-in-Docker 容器内可能成功的方法加载内核模块,包括
ip6_tables和br_netfilter。moby/moby#49043 - 修复了一个错误,该错误可能导致 iptables
DOCKER FILTER链在失败时未被清理。moby/moby#49110
软件包更新
- 将 Compose 更新至 v2.32.1。docker/docker-ce-packaging#1130
- 将 Buildx 更新至 v0.19.3。docker/docker-ce-packaging#1132
- 将 runc(仅静态二进制文件)更新至 v1.2.3 moby/moby#49085
27.4.0
2024-12-09有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
API
- 启用
manifests选项的GET /images/json现在会保留清单在清单索引中出现的原始顺序。moby/moby#48712
错误修复和增强功能
- 使用
jsonfile或local日志驱动程序读取日志时,任何尝试读取或解析底层日志文件的错误都会导致跳过文件的其余部分并移动到下一个日志文件(如果存在),而不是向客户端返回错误并关闭流。这些错误可在 Docker 守护程序日志中查看,并在配置了跟踪时导出到跟踪中。moby/moby#48842 - 读取日志文件时,压缩的日志文件现在仅在需要时解压缩,而不是在启动日志流之前解压缩所有文件。moby/moby#48842
- 修复了一个问题,该问题意味着当内核的
br_netfilter模块未加载和启用时,桥接网络上某个容器的已发布端口无法从同一网络上禁用userland-proxy的另一个容器访问。守护程序现在在创建禁用用户空间代理的网络时,将尝试加载模块并启用bridge-nf-call-iptables或bridge-nf-call-ip6tables。moby/moby#48685 - 修复了
bridge和br_netfilter内核模块的加载。moby/moby#48966 - containerd 镜像存储:修复了在使用 containerd 快照程序且存在大量构建/镜像时,Docker 守护程序因“context deadline exceeded error”而无法完全启动的问题。moby/moby#48954
- containerd 镜像存储:修复了部分拉取的镜像未被垃圾回收的问题。moby#48910, moby/moby#48957
- containerd 镜像存储:修复了
docker image inspect在RepoDigests中输出重复引用的问题。moby/moby#48785 - containerd 镜像存储:修复了在 HTTPS 请求因非 TLS 相关错误而失败时无法连接到某些不安全注册表的问题。moby/moby#48758
- containerd 镜像存储:在标记非悬空镜像时移除令人困惑的警告日志。moby/moby#49010
- containerd 镜像存储:在
docker image ls --tree中不为名称添加下划线。docker/cli#5519 - containerd 镜像存储:将
docker image ls --tree中的USED列名称更改为IN USE。docker/cli#5518 dockerd-rootless-setuptool.sh install --force现在忽略 RootlessKit 错误 moby/moby#48695- 为分配给属于桥接网络的网桥的地址禁用 IPv6 重复地址检测 (DAD)。moby/moby#48684
- 移除 BuildKit 初始化超时。moby/moby#48963
- 在 ZFS 上移除数据集时忽略“dataset does not exist”错误。moby/moby#48968
- 客户端:防止空闲连接泄漏 FD。moby/moby#48764
- 修复了通过
--mount选项创建的匿名卷未被标记为匿名的问题。moby/moby#48755 - 在使用 live-restore 重启守护程序后,确保 iptables 跳转到
DOCKER-USER链的规则位于其他规则之前。moby/moby#48714 - 修复了由 OTel meter 可能导致的内存泄漏。moby/moby#48693
- 为每个镜像存储创建独立的构建历史数据库。moby/moby#48688
- 修复了在紧密循环中进行 DNS 解析时导致内存使用过多的问题。moby/moby#48840
- 修复了一个错误,该错误阻止了在
docker run期间取消镜像拉取。docker/cli#5654 docker login和docker 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 - 改进了
docker rm的容器 shell 补全。docker/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.ErrNameReserved和container.ErrNameNotReserved。moby/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.Joindocker/cli#5548
软件包更新
- 将 Go 运行时更新至 1.22.10。moby/moby#49026, docker/cli#5669, docker/docker-ce-packaging#1120.
- 将 Compose 更新至 v2.31.0。docker/docker-ce-packaging#1100
- 将 BuildKit 更新至 v0.17.3。moby/moby#49024
- 将 Buildx 更新至 v0.19.1。docker/docker-ce-packaging#1115
- 将 containerd 更新至 v1.7.24。moby/moby#48934
- 将 containerd(仅静态二进制文件)更新至 v1.7.24。moby/moby#48919
- 将 runc 更新至 v1.2.2。moby/moby#48919
27.3
Docker Engine 27.3 版本的发行说明。
27.3.1
2024-09-20有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
错误修复和增强功能
- CLI:修复了命令执行指标未正确导出的问题。docker/cli#5457
软件包更新
- 将 Compose 更新至 v2.29.7
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 - 修复了一个问题,该问题在运行
--iptables=false、--ip6tables=true(默认值)以及具有针对转发数据包的 DROP 规则的防火墙的主机上(其中br_netfilter内核模块通常未加载)时,阻止了 IPv4 桥接网络上容器之间的通信。moby/moby#48511 - CLI:修复了
docker volume update命令在未传递参数/卷时会导致 CLI 崩溃的问题。docker/cli#5426 - CLI:在 Windows 上的 WSL 环境中运行时正确报告指标。docker/cli#5432
软件包更新
- 将 containerd(仅静态二进制文件)更新至 v1.7.22 moby/moby#48468
- 将 Buildkit 更新至 v0.16.0
- 将 Compose 更新至 v2.29.6
- 将 Buildx 更新至 v0.17.1
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现在在非交互方式调用时,如果使用了--password或--password-stdin但没有--user,则会返回错误而不是挂起。docker/cli#5402
软件包更新
- 将 runc 更新至 v1.1.14,其中包含针对 CVE-2024-45310 的修复。moby/moby#48426
- 将 Go 运行时更新至 1.22.7。moby/moby#48433, docker/cli#5411, docker/docker-ce-packaging#1068
27.2.0
2024-08-27有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli, 27.2.0 里程碑
- moby/moby, 27.2.0 里程碑
- 已弃用和已移除的功能,请参阅已弃用的功能。
- Engine API 的变更,请参阅API 版本历史。
新增功能
此版本中的新功能包括:
设备代码登录
此版本增加了在向 Docker Hub 进行身份验证时使用设备代码登录的支持。
您仍然可以使用旧的用户名和密码或访问令牌登录方法,但设备代码登录更安全,并且不需要您在 CLI 中输入密码。
要使用旧方法,请使用 docker login -u <username>。
docker image ls 的多平台支持
Experimental
此功能处于实验阶段,可能会在任何时候发生更改,且没有任何向后兼容性。启用 containerd 镜像存储后,docker image ls 命令(或简写 docker images)现在支持 --tree 标志,该标志现在可以显示镜像是否为多平台镜像。
API
-
GET /images/json响应现在包含Manifests字段,其中包含有关镜像索引中包含的子清单的信息。这包括特定于平台的清单和构建证明等内容。仅当请求同时将
manifests查询参数设置为true时,才会填充新字段。Experimental
此功能处于实验阶段,可能会在任何时候发生更改,且没有任何向后兼容性。
错误修复和增强功能
- CLI:修复了通过 SSH 连接远程上下文时的问题,该问题会导致 CLI 在连接到远程主机时分配伪 TTY,这在极少数情况下会导致问题。docker/cli#5351
- 修复了一个问题,该问题阻止了以 64 位边界结束的
--ip-range创建网络。moby/moby#48326 - CLI:
docker ps中端口绑定显示的 IPv6 地址现在用方括号括起来。docker/cli#5365 - containerd 镜像存储:修复了在解压镜像失败时
docker load提前错误退出的问题。moby/moby#48376 - containerd 镜像存储:修复了在
docker pull后未将先前的镜像保留为悬空的问题。moby/moby#48380
软件包更新
- 将 BuildKit 更新至 v0.15.2。moby/moby#48341
- 将 Compose 更新至 v2.29.2。docker/docker-ce-packaging#1050
- 将 containerd 更新至 v1.7.21。moby/moby#48383, docker/containerd-packaging#389
已知问题
- 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时,请勿在注册表地址中包含任何额外的后缀。Note使用包含 URL 路径段的地址进行
docker login不是文档化的用例,被视为不受支持。推荐的用法是指定仅注册表主机名,以及可选的端口,作为docker login的地址。
27.1
Docker Engine 27.1 版本的发行说明。
27.1.2
2024-08-13有关此版本中拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli, 27.1.2 里程碑
- moby/moby, 27.1.2 里程碑
- 已弃用和已移除的功能,请参阅已弃用的功能。
- Engine API 的变更,请参阅API 版本历史。