Docker Engine 27 版本发布说明
本页介绍了 Docker Engine 27 版本的最新更改、新增内容、已知问题和修复。
关于以下内容的更多信息:
- 已弃用和移除的功能,请参见 已弃用的引擎功能。
- 引擎 API 的变更,请参阅 引擎 API 版本历史。
27.4
Docker Engine 27.4 版本的发布说明。
27.4.0
2024-12-09关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
API
GET /images/json启用manifests选项后,现在保留了清单索引中清单出现的原始顺序。 moby/moby#48712
错误修复和功能增强
- 在使用
jsonfile或local日志驱动程序读取日志时,如果在尝试读取或解析底层日志文件时出现任何错误,将跳过文件的其余部分并转到下一个日志文件(如果存在),而不是向客户端返回错误并关闭流。当配置了跟踪时,这些错误可在 Docker 守护程序日志中查看并导出到跟踪中。 moby/moby#48842 - 在读取日志文件时,压缩的日志文件现在仅在需要时才进行解压缩,而不是在开始日志流之前解压缩所有文件。 moby/moby#48842
- 修复一个导致在桥接网络上,当
userland-proxy禁用且内核的br_netfilter模块未加载和启用时,一个容器发布的端口无法被同一网络上的另一个容器访问的问题。现在,当创建网络且用户空间代理被禁用时,守护进程将尝试加载该模块并启用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 镜像存储:修复在某些情况下由于非 TLS 相关错误导致 HTTPS 请求失败时,无法连接到某些不安全的注册表的问题。 moby/moby#48758
- containerd 镜像存储:在标记非悬空镜像时,移除一个令人困惑的警告日志。 moby/moby#49010
- containerd 镜像存储:不要在
docker image ls --tree中给名称加下划线。 docker/cli#5519 - containerd 镜像存储:将
USED列在docker image ls --tree中的名称更改为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上移除数据集时忽略“数据集不存在”错误。 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 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 - 改善容器的 shell 补全功能,适用于
docker rm。 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(仅静态Binaries)至 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 - 修复一个在 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
软件包更新
- 更新 containerd(仅静态Binaries)至 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现在会在非交互式调用且没有--user的情况下返回错误,而不是挂起,即使带有--password或--password-stdin。 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 时使用设备码登录的支持。
你仍然可以使用旧方法,通过用户名和密码或访问令牌登录,但设备代码登录更安全,且不需要你在命令行界面输入密码。


要使用旧方法,请使用 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
软件包更新
- 更新 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时,请不要在仓库地址中包含任何多余的后缀。注意
使用
docker login并包含 URL 路径段的地址不属于文档化的使用场景,被视为不受支持。建议的用法是仅为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 版本历史记录。
错误修复和功能增强
- 修复一个回归问题,该问题可能导致从大型 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
软件包更新
- 将 BuildKit 更新至 v0.15.1。 moby/moby#48246
- 将 Buildx 更新至 v0.16.2。 docker/docker-ce-packaging#1043
- 将 Go 运行时更新到 1.21.13。 moby/moby#48301, docker/cli#5325, docker/docker-ce-packaging#1046
- 从 Windows 包中移除未使用的
docker-proxy.exeBinaries。 docker/docker-ce-packaging#1045
27.1.1
2024-07-23安全
此版本包含对使用访问控制的设置中受影响的 CVE-2024-41110 / GHSA-v23v-6jw2-98fq 的修复,这些设置使用了 授权插件 (AuthZ) 。除上述修复外,此版本未包含其他更改,对于未使用 AuthZ 插件的用户,此版本基本相同。
软件包更新
- 更新 Compose 至 v2.29.1。 moby/docker-ce-packaging#1041
27.1.0
2024-07-22关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,27.1.0 里程碑
- moby/moby, 27.1.0 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
错误修复和功能增强
- 无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 create和docker stackdocker/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#48185pkg/containerfs包已弃用,将在下一个版本中删除 moby/moby#48185pkg/directory包已弃用,将在下一个版本中删除 moby/moby#48185api/types/system: 移除已弃用的Info.ExecutionDrivermoby/moby#48184
软件包更新
- 更新 Buildx 至 v0.16.1。 moby/docker-ce-packaging#1039
- 更新 Compose 至 v2.29.0。 moby/docker-ce-packaging#1038
- 更新 Containerd(仅静态Binaries)至 v1.7.20。 moby/moby#48191
- 将 BuildKit 更新至 v0.15.0。 moby/moby#48175
- 将 Go 运行时更新到 1.21.12,其中包含针对 CVE-2024-24791 moby/moby#48120的安全修复
27.0
Docker Engine 27.0 的发布说明。
27.0.3
2024-07-01关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,27.0.3 里程碑
- moby/moby, 27.0.3 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
错误修复和功能增强
- 修复一个回归问题,该问题错误地将从主机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 里程碑:
- docker/cli,27.0.2 里程碑
- moby/moby, 27.0.2 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
错误修复和功能增强
- 修复一个回归问题,该问题在解析 Docker 注册表 URL 时忽略了端口号。 docker/cli#5197, docker/cli#5198
已移除
- api/types: 废弃
ContainerJSONBase.Node字段和ContainerNode类型。这些定义曾被独立的("classic")Swarm API 使用,但从未在 Docker Engine 中实现。 moby/moby#48055
27.0.1
2024-06-24关于本次版本中所有拉取请求和变更的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,27.0.0 里程碑
- moby/moby, 27.0.0 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
新
- containerd 镜像存储:为
--platform添加docker image push标志,并改进在本地不可用多平台镜像的所有平台时的默认行为。 docker/cli#4984, moby/moby#47679 - 为服务的网络添加对
docker stack deploy中driver_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 save和docker 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。
- 在未来版本中,这将是设置按接口sysctl选项的唯一方式。
例如,在
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-pools。 moby/moby#47853- 在此版本之前,要创建支持 IPv6 的网络,需要使用
--subnet选项指定 IPv6 子网,或在daemon.json中向default-address-pools添加 IPv6 范围。 - 从本版本开始,当使用
--ipv6创建桥接网络且这些选项未定义 IPv6 子网时,将使用 IPv6 唯一本地地址(ULA)基本前缀。 - ULA 前缀源自引擎主机 ID,因此在主机之间和随时间推移都是唯一的。
- 在此版本之前,要创建支持 IPv6 的网络,需要使用
- 现在可以将任意大小的 IPv6 地址池添加到
default-address-pools。 moby/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=true。 moby/moby#47867 - IPv6 网络的直接路由,启用
ip6tables。moby/moby#47871- 新增了桥接驱动程序选项
com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>。 - 默认行为
nat与启用ip6tables的先前版本保持不变。为每个发布的容器端口设置NAT和伪装规则。 - 当设置为
routed时,不会为发布的端口配置NAT或伪装规则。如果主机网络能够将容器地址的数据包路由到主机,则可直接通过IPv6访问容器。发布的端口将在容器防火墙中打开。 - 当端口映射仅适用于
routed模式时,仅允许地址0.0.0.0或::,并且不得指定主机端口。 - 请注意,在
nat或routed模式下发布的容器端口,如果网络中设置了路由,则可以从任何远程地址访问,除非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: 废弃
NewTempArchive和TempArchive。这些类型仅在测试中使用,并将在下一个版本中删除。 moby/moby#48002 - pkg/archive: 废弃
CanonicalTarNameForPathmoby/moby#48001 - 弃用 pkg/dmesg。此包不再使用,将在下一个版本中删除。 moby/moby#47999
- 弃用
pkg/stringid.ValidateID和pkg/stringid.IsShortIDmoby/moby#47995 - runconfig: 废弃
SetDefaultNetModeIfBlank并将ContainerConfigWrapper移动到api/types/containermoby/moby#48007 - runconfig: 废弃
DefaultDaemonNetworkMode并切换到daemon/networkmoby/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/create和POST /services/{id}/update现在支持OomScoreAdj。 moby/moby#47950ContainerListapi 返回容器注解。 moby/moby#47866POST /containers/create和POST /services/create现在将Options作为HostConfig.Mounts.TmpfsOptions的一部分,允许为 tmpfs 挂载设置选项。 moby/moby#46809- 在使用低于 v1.44 的 API 版本更新 Swarm 服务时,现在会正确忽略
Healthcheck.StartInterval属性。 moby/moby#47991 GET /events现在支持镜像create事件,当构建新镜像时会触发此事件,无论该镜像是否被打上标签。 moby/moby#47929GET /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
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(除非设置,否则已省略)MacAddress(除非设置,否则已省略)StopTimeout(除非设置,否则已省略)
Go SDK 变更
- 以下函数的客户端 API 回调现在需要一个上下文参数。
moby/moby#47536
client.RequestPrivilegeFuncclient.ImageSearchOptions.AcceptPermissionsFuncimage.ImportOptions.PrivilegeFunc
- 移除 Image 类型的弃用别名。
moby/moby#47900
ImageImportOptionsImageCreateOptionsImagePullOptionsImagePushOptionsImageListOptionsImageRemoveOptions
- 为
github.com/docker/go-units.Ulimit引入Ulimit类型别名。 API中使用的Ulimit类型定义在一个Go模块中,该模块将在未来迁移到新位置。 添加类型别名以减少将类型移动到新位置带来的摩擦。 该别名确保现有代码继续正常运行,但其定义可能会在未来发生变化。 建议用户使用此别名,而不是直接使用units.Ulimit。 moby/moby#48023
移动和重命名类型,更改它们的导入路径和导出名称。 moby/moby#47936, moby/moby#47873, moby/moby#47887, moby/moby#47882, moby/moby#47921, moby/moby#48040
- 将以下类型移动到
api/types/container:BlkioStatEntryBlkioStatsCPUStatsCPUUsageContainerExecInspectContainerPathStatContainerStatsContainersPruneReportCopyToContainerOptionsExecConfigExecStartCheckMemoryStatsNetworkStatsPidsStatsStatsJSONStatsStorageStatsThrottlingData
- 将以下类型移动到
api/types/image:ImagesPruneReportImageImportSourceImageLoadResponse
- 将
ExecStartOptions类型移动到api/types/backend。 - 将
VolumesPruneReport类型移动到api/types/volume。 - 将
EventsOptions类型移动到api/types/events。 - 将
ImageSearchOptions类型移动到api/types/registry。 - 去掉前缀
Network,并将以下类型移至api/types/network:NetworkCreateResponseNetworkConnectNetworkDisconnectNetworkInspectOptionsEndpointResourceNetworkListOptionsNetworkCreateOptionsNetworkCreateRequestNetworksPruneReport
- 将
NetworkResource移动到api/types/network。
软件包更新
- 将 Buildx 更新至 v0.15.1。 docker/docker-ce-packaging#1029
- 更新 BuildKit 至 v0.14.1。 moby/moby#48028
- 更新 runc 至 v1.1.13 moby/moby#47976
- 更新 Compose 至 v2.28.1。 moby/docker-ce-packaging#1032
27.0.0
由于在 GitHub 上对 27.0.0-rc.1 进行预发布时出现错误,导致创建了 v27.0.0 标签,因此没有发布 27.0.0 版本。 不幸的是,该标签已被 Go 模块镜像抓取,因此无法干净地更改 v27.0.0。 为解决此问题,27.0.1 将作为 27.0 系列的第一个正式版本发布。