Docker Engine 版本 27 发布说明
本页介绍了Docker Engine版本27的最新更改、新增功能、已知问题和修复。
有关更多信息:
27.4
Docker Engine 版本 27.4 的发布说明。
27.4.1
2024-12-18有关此版本中所有拉取请求和更改的完整列表,请参阅相关的GitHub里程碑:
Bug修复和增强
- 修复未配置OTel时的过度内存分配问题。 moby/moby#49079
- 当在守护进程启动时禁用
bridge-nf-call-iptables或bridge-nf-call-ip6tables时,docker info命令和相应的GET /infoAPI端点不再包含警告。现在在需要时会尝试加载br_netfilter内核模块,这使得这些警告不再准确。 moby/moby#49090 - 尝试加载内核模块,包括在需要时使用可能在Docker-in-Docker容器内成功的方法加载
ip6_tables和br_netfilter。 moby/moby#49043 - 修复了一个可能导致iptables
DOCKER FILTER链在失败时未被清理的bug。 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
GET /images/json启用了manifests选项后,现在会保留清单在清单索引中出现的原始顺序。 moby/moby#48712
Bug fixes and enhancements
- 当使用
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 镜像存储:修复 Docker 守护进程在使用 containerd 快照器和大量构建/镜像时无法完全启动并出现“上下文截止时间超出错误”的问题。 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 镜像存储:将
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上删除数据集时忽略“数据集不存在”错误。 moby/moby#48968
- 客户端:防止空闲连接泄漏文件描述符。 moby/moby#48764
- 修复通过
--mount选项创建的匿名卷未被标记为匿名的问题。 moby/moby#48755 - 在守护进程重启并启用实时恢复后,确保在其它规则之前放置一个跳转到
DOCKER-USER链的iptables规则。 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 - 改进
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: 修复了自 v27.2.1 以来已被弃用的
cli/command.ConfigureAuth()的弃用问题。 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里程碑:
Bug 修复和增强功能
- CLI: 修复命令执行指标未正确导出的问题。 docker/cli#5457
包装更新
- 更新 Compose 至 v2.29.7
27.3.0
2024-09-19有关此版本中所有拉取请求和更改的完整列表,请参阅相关的GitHub里程碑:
Bug fixes and enhancements
- 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(默认值)时,阻止了在IPv4桥接网络上的容器之间的通信,当主机上的br_netfilter内核模块通常未加载时,防火墙对转发的数据包有DROP规则。 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-09Bug修复和增强
- 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 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对引擎API的更改,请参见 API版本历史。
新
此版本中的新功能包括:
设备代码登录
此版本增加了在向Docker Hub进行身份验证时使用设备代码登录的支持。
您仍然可以使用用户名和密码或访问令牌的旧方法登录,但设备代码登录更安全,并且不需要您在CLI中输入密码。


要使用旧方法,请使用 docker login -u 。
多平台支持 docker image ls
实验性
This is experimental and may change at any time without any backward compatibility.启用containerd镜像存储后,docker image ls命令(或docker images简写)现在支持--tree标志,该标志现在显示镜像是否为多平台镜像。
API
GET /images/json响应现在包括Manifests字段,该字段包含有关图像索引中包含的子清单的信息。这包括特定平台的清单和构建证明等内容。新字段只有在请求同时将
manifests查询参数设置为true时才会被填充。实验性
This is experimental and may change at any time without any backward compatibility.
Bug fixes and enhancements
- CLI: 修复了通过SSH远程上下文时CLI会在连接到远程主机时分配伪终端的问题,这在极少数情况下会导致问题。 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
已知问题
- There is a known issue when authenticating against a registry in the Docker CLI (
docker login [registry address]) where, if the provided registry address includes a repository/image name (such asdocker login index.docker.io/docker/welcome-to-docker), the repository part (docker/welcome-to-docker) is not normalized and results in credentials being stored incorrectly, which causes subsequent pulls from the registry (docker pull index.docker.io/docker/welcome-to-docker) to not be authenticated. To prevent this, don't include any extraneous suffix in the registry address when runningdocker 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 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对引擎API的更改,请参阅 API版本历史。
Bug fixes and enhancements
- 修复了一个回归问题,该问题可能导致在从大型Dockerfile构建时出现
ResourceExhausted desc = grpc: received message larger than max错误。 moby/moby#48245 - CLI: 修复
docker attach打印一个虚假的context cancelled错误信息。 docker/cli#5296 - CLI: 修复
docker attach在SIGINT时退出,而不是将信号转发到容器并等待其退出的问题。 docker/cli#5302 - CLI: 修复
--device-read-bps和--device-write-bps选项未生效的问题。 docker/cli#5339 - CLI: 修复在某些情况下运行插件时发生的崩溃问题。 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.exe二进制文件。 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版本历史。
错误修复和增强功能
- rootless: 添加
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: 在
docker service create和docker stack中添加 OOMScoreAdj 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#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(仅限静态二进制文件)至 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版本历史。
Bug修复和增强
- 修复了一个回归问题,该问题错误地将从主机IPv6地址到仅支持IPv4的容器的端口映射报告为错误。 moby/moby#48090
- 修复了一个在创建网络时导致子网分配重复的回归问题。 moby/moby#48089
- 修复了一个回归问题,该问题导致在支持用户命名空间的原生覆盖系统上尝试拉取启用了无根模式的镜像时,出现
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类型。这些定义曾用于独立(“经典”)的 Swarm API,但从未在 Docker Engine 本身中实现。 moby/moby#48055
27.0.1
2024-06-24有关此版本中所有拉取请求和更改的完整列表,请参阅相关的GitHub里程碑:
- docker/cli, 27.0.0 里程碑
- moby/moby, 27.0.0 里程碑
- 已弃用和移除的功能,请参阅 已弃用功能。
- 对引擎API的更改,请参阅 API版本历史。
新
- containerd 镜像存储:为
docker image push添加--platform标志,并改进当多平台镜像的所有平台在本地不可用时的默认行为。 docker/cli#4984, moby/moby#47679 - 为服务网络中的
driver_opts添加对docker stack deploy的支持。 docker/cli#5125 - 在查找以
docker-为前缀的用户态代理二进制文件时,考虑额外的/usr/local/libexec和/usr/libexec路径。 moby/moby#47804
Bug修复和增强
*client.Client实例现在总是可以安全地被多个 goroutine 并发使用。以前,当使用WithAPIVersionNegotiation()选项时,可能会导致数据竞争。 moby/moby#47961- 修复了一个导致Docker CLI在某些情况下泄漏
$TMPDIR中Unix套接字的错误。 docker/cli#5146 - 不要在使用
--privileged时忽略自定义的seccomp配置文件。 moby/moby#47500 - rootless: overlay2: 支持在使用rootless模式时,使用Linux内核版本5.11及更高版本的原生overlay差异。 moby/moby#47605
- 修复
StartInterval的默认值,使其反映文档中记录的 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
- 允许在支持BuildKit的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子网,或将IPv6范围添加到daemon.json中的default-address-pools。 - 从本版本开始,当使用
--ipv6创建桥接网络且这些选项未定义IPv6子网时,将使用IPv6唯一的本地地址(ULA)基础前缀。 - ULA前缀源自引擎主机ID,因此它在主机之间和随时间推移都是唯一的。
- 在此版本之前,要创建支持IPv6的网络,必须使用
- 现在可以将任何大小的IPv6地址池添加到
default-address-pools中。 moby/moby#47768 - 现在可以在所有自定义桥接网络上默认启用IPv6,通过在
daemon.json中使用"default-network-opts": { "bridge": {"com.docker.network.enable_ipv6": "true"}},或者在命令行中使用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与之前启用了ip6tables的版本相同。为每个发布的容器端口设置了NAT和伪装规则。 - 当设置为
routed时,不会为发布的端口配置NAT或伪装规则。如果主机的网络可以将容器的地址路由到主机,这将启用直接IPv6访问容器。发布的端口将在容器的防火墙中打开。 - 当端口映射仅适用于
routed模式时,只允许地址0.0.0.0或::,并且不能指定主机端口。 - 请注意,如果网络设置了路由,除非Docker主机的防火墙有额外的限制,否则在
nat或routed模式下发布的容器端口可以从任何远程地址访问。例如:docker network create --ipv6 -o com.docker.network.bridge.gateway_mode_ipv6=routed mynet。 - 选项
com.docker.network.bridge.gateway_mode_ipv4=也可用,行为相同但适用于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'。 - 如果所有所需地址上都没有可用的端口,容器创建将失败。
- 例如,
- 环境变量
DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE,在版本26.1.1中引入,不再有任何效果。 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现在支持一个platform参数(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的第一个发布版本。