Docker Engine 版本 27 发行说明
本页介绍了 Docker Engine 版本 27 的最新更改、新增功能、已知问题和修复。
有关以下内容的更多信息:
- 已弃用和已删除的功能,请参阅已弃用的引擎功能。
- 对 Engine API 的更改,请参阅 Engine API 版本历史记录。
27.4
Docker Engine 版本 27.4 版本的发行说明。
27.4.0
2024-12-09有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
应用程序接口
GET /images/json
使用manifests
option enabled 现在保留清单在 manifest-index 中出现的原始顺序。白鲸/白鲸 #48712
错误修复和增强功能
- 使用
jsonfile
或local
日志驱动程序,则在尝试读取或解析底层日志文件时出现的任何错误都会导致跳过文件的其余部分并移动到下一个日志文件(如果存在),而不是将错误返回给客户端并关闭流。这些错误可以在 Docker 守护程序日志中查看,并在配置跟踪时导出到跟踪。白鲸/白鲸#48842 - 读取日志文件时,压缩的日志文件现在仅在需要时解压缩,而不是在启动日志流之前解压缩所有文件。白鲸/白鲸#48842
- 修复了以下问题:无法从同一网络上的另一个容器访问桥接网络上一个容器的已发布端口
userland-proxy
disabled,如果内核的br_netfilter
模块未加载和启用。守护进程现在将尝试加载模块并启用bridge-nf-call-iptables
或bridge-nf-call-ip6tables
在禁用 Userland 代理的情况下创建网络时。白鲸/白鲸#48685 - 修复加载
bridge
和br_netfilter
内核模块。白鲸/白鲸#48966 - containerd 镜像存储:修复了 Docker 守护程序无法完全启动并显示 containerd snapshotter 和许多构建/镜像的“context deadline exceeded error”的问题。白鲸/白鲸#48954
- containerd 镜像存储:修复了未进行垃圾回收的部分提取镜像的问题。MOBY#48910、MOBY/MOBY#48957
- containerd 镜像存储:修复
docker image inspect
输出重复的引用RepoDigests
.白鲸/白鲸#48785 - containerd image store:修复了在 HTTPS 请求因非 TLS 相关错误而失败的情况下无法连接到某些不安全的注册表的问题。白鲸/白鲸#48758
- containerd image store:在标记非悬空镜像时删除令人困惑的警告日志。白鲸/白鲸#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)。白鲸/白鲸#48684
- 删除 BuildKit init 超时。白鲸/白鲸#48963
- 在 ZFS 上删除数据集时忽略 “dataset does not exist” 错误。白鲸/白鲸#48968
- 客户端:防止空闲连接泄漏 FD。moby/moby#48764
- 修复通过
--mount
选项未标记为匿名。白鲸/白鲸#48755 - 在守护进程使用 live-restore 重新启动后,确保 iptables 跳转到
DOCKER-USER
chain 放置在其他规则之前。白鲸/白鲸#48714 - 修复 OTel 仪表可能导致的内存泄漏问题。白鲸/白鲸#48693
- 为每个镜像存储创建不同的构建历史记录数据库。白鲸/白鲸 #48688
- 修复了在紧密循环中进行 DNS 解析时导致内存使用过多的问题。白鲸/白鲸#48840
- 修复了阻止在期间取消镜像拉取的错误
docker run
.docker/cli 命令 #5654 - 这
docker login
和docker logout
如果凭证未更改,则命令不再更新配置文件。docker/cli 命令 #5569 - 优化
docker stats
以减少闪烁问题。docker/cli#5588、docker/cli#5635 - 修复了无法访问的插件路径,从而阻止了插件被检测到的问题。docker/cli #5652 的
- 添加对
events --filter
在 Cobra 生成的 shell 完成中。docker/cli 的 #5614 - 修复 的 bash 完成
events --filter daemon=
.docker/cli 命令 #5563 - 改进容器的 shell 完成
docker rm
.docker/cli 命令 #5540 - 添加 shell 完成
--platform
标志。docker/cli 命令 #5540 - rootless:使
/etc/cdi
和/var/run/cdi
可通过容器设备接口 (CDI) 集成访问。白鲸/白鲸#49027
删除
- 废弃
Daemon.Exists()
和Daemon.IsPaused()
.这些函数将不再使用,并将在下一个版本中删除。白鲸/白鲸#48719 - 废弃
container.ErrNameReserved
和container.ErrNameNotReserved
.白鲸/白鲸#48697 - 废弃
pkg/platform
- 此软件包仅在内部使用,并将在下一个版本中删除。白鲸/白鲸#48863 - 废弃
RepositoryInfo.Class
.此字段不再使用,并将在下一版本中删除。白鲸/白鲸#49013 - Go SDK:修复
cli/command.ConfigureAuth()
,自 v27.2.1 起已废弃。docker/cli #5552 - Go SDK:废弃
cli.Errors
键入以支持 Go 的errors.Join
docker/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。白鲸/白鲸#49024
- 将 Buildx 更新到 v0.19.1。docker/docker-ce-packaging的 #1115
- 将 containerd 更新到 v1.7.24。白鲸/白鲸#48934
- 将 containerd(仅限静态Binaries)更新到 v1.7.24。白鲸/白鲸#48919
- 更新 runc 至 v1.2.2。白鲸/白鲸#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
取消标记容器使用的镜像 从摘要引用引用的镜像开始。白鲸/白鲸#48488 - 添加
--feature
flag 添加到守护程序选项中。白鲸/白鲸#48487 - 更新了
--gpus=0
标志与 NVIDIA Container Runtime 保持一致。白鲸/白鲸#48483 - 支持 WSL2 镜像模式网络使用的接口
loopback0
对于来自 Windows 主机的数据包。白鲸/白鲸#48514 - 修复了在使用
--iptables=false
,--ip6tables=true
(默认值)的防火墙,该防火墙具有 DROP 规则,用于转发数据包的主机上的br_netfilter
kernel 模块未正常加载。白鲸/白鲸#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
输出。白鲸/白鲸#48402 - containerd 镜像存储:改进
docker pull
Image Platform 不匹配时出现错误消息。白鲸/白鲸#48415 - CLI:修复导致
docker login
不从传入的注册表地址中删除存储库名称,从而导致凭据存储在错误的密钥下。docker/cli 命令 #5385 - CLI:修复了在 CLI 进程暂停,然后在等待用户身份验证时恢复时有时会导致浏览器登录流失败的问题。docker/cli 命令 #5376
- 命令行界面:
docker login
现在,如果使用--password
或--password-stdin
但没有--user
.docker/cli #5402 的
打包更新
- 将 runc 更新到 v1.1.14,其中包含 CVE-2024-45310 的修复程序。白鲸/白鲸#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 Hub 中。
您仍然可以使用旧方法,通过用户名和密码登录,或者 Access Token,但设备代码登录更安全,不需要您这样做 在 CLI 中输入您的密码。

要使用旧方法,请使用docker login -u <username>
.
多平台支持docker image ls
实验的
这是实验性的,可能随时更改,没有任何向后兼容性。启用 containerd 镜像存储后,docker image ls
命令(或docker images
简写)现在支持--tree
标志,现在显示
如果镜像是多平台镜像。
应用程序接口
GET /images/json
响应现在包括Manifests
字段,其中包含有关镜像索引中包含的子清单的信息。这包括特定于平台的清单和生成证明等内容。仅当请求还将
manifests
query 参数设置为true
.实验的
这是实验性的,可能随时更改,没有任何向后兼容性。
错误修复和增强功能
- CLI:修复了通过 SSH 的远程情景中,CLI 在连接到远程主机时会分配伪 TTY 的问题,这在极少数情况下会导致问题。docker/cli #5351 命令
- 修复了阻止使用
--ip-range
以 64 位边界结束。白鲸/白鲸 #48326 - CLI:显示的 IPv6 地址
docker ps
IN 端口绑定现在括起来。docker/cli #5365 命令 - containerd 镜像存储:修复早期错误 exit from
docker load
在解压缩镜像失败的情况下。白鲸/白鲸#48376 - containerd image store:修复上一个镜像在之后未保留为悬空的问题
docker pull
.白鲸/白鲸 #48380
打包更新
- 更新 BuildKit 至 v0.15.2。白鲸/白鲸#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 版本历史记录。
错误修复和增强功能
- 修复可能导致
ResourceExhausted desc = grpc: received message larger than max
从大型 Dockerfile 构建时出错。白鲸/白鲸#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:修复在某些情况下运行插件时发生的 panic。docker/cli 命令 #5337
打包更新
- 更新 BuildKit 至 v0.15.1。白鲸/白鲸#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
- 删除未使用的
docker-proxy.exe
Binaries。docker/docker-ce-packaging的 #1045
27.1.1
2024-07-23安全
此版本包含针对 CVE-2024-41110/GHSA-v23v-6jw2-98fq 的修复程序,该修复程序影响了使用授权插件 (AuthZ) 进行访问控制的设置。此版本不包含其他更改,并且此 release 对于不使用 AuthZ 插件的用户,则相同。
打包更新
- 将 Compose 更新到 v2.29.1。MOBY/docker-CE 打包#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 moby/moby 的 cgroup v2 主机上启动守护进程时出错#48141 - containerd 集成:
image tag
现在使用 BuildKit moby/moby 构建镜像时可以正确发出事件#48182 - CLI:为
docker image rm
,docker image history
和docker image inspect
白鲸/白鲸#5261 - CLI:添加和改进各种标志 moby/moby 的 shell 补全 #5261
- CLI:将 OOMScoreAdj 添加到
docker service create
和docker stack
docker/cli #5274 的 - CLI:添加对
DOCKER_CUSTOM_HEADERS
环境变量(实验性)docker/cli#5271 - CLI:containerd-integration:修复
docker push
默认--platform
flag 的值设置为DOCKER_DEFAULT_PLATFORM
不支持的 API 版本上的 environment 变量 docker/cli#5248 - CLI:修复:context cancellation on
login
提示 docker/cli#5260 - CLI:修复:在附加到容器时向 CLI 发送终止请求时,等待容器退出后再关闭流 docker/cli#5250
荒废的
- 这
pkg/rootless/specconv
package 已废弃,并将在下一个版本 moby/moby 中删除#48185 - 这
pkg/containerfs
package 已废弃,并将在下一个版本 moby/moby 中删除#48185 - 这
pkg/directory
package 已废弃,并将在下一个版本 moby/moby 中删除#48185 api/types/system
:删除已弃用Info.ExecutionDriver
白鲸/白鲸#48184
打包更新
- 将 Buildx 更新到 v0.16.1。moby/docker-ce-打包#1039
- 将 Compose 更新到 v2.29.0。moby/docker-ce-packaging的 #1038
- 将 Containerd(仅限静态Binaries)更新到 v1.7.20。白鲸/白鲸#48191
- 更新 BuildKit 至 v0.15.0。白鲸/白鲸#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 的容器的端口映射报告为错误。白鲸/白鲸#48090
- 修复了在创建网络时导致重复子网分配的回归。白鲸/白鲸#48089
- 修复导致
fail to register layer: failed to Lchown
尝试在支持具有用户命名空间的本机覆盖层的系统上拉取启用了 rootless 的镜像时出错。白鲸/白鲸#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
field 和ContainerNode
类型。这些定义由独立(“经典”)Swarm API 使用,但从未在 Docker 引擎本身中实现。白鲸/白鲸#48055
27.0.1
2024-06-24有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,27.0.0 里程碑
- moby/moby,27.0.0 里程碑
- 已弃用和已删除的功能,请参阅 已弃用的功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
新增功能
- containerd 镜像存储:添加
--platform
flag 设置为docker image push
并改进当多平台镜像的所有平台并非都在本地可用时的默认行为。docker/cli#4984、moby/moby#47679 - 添加支持
docker stack deploy
为driver_opts
在服务的网络中。docker/cli #5125 命令 - 考虑额外的
/usr/local/libexec
和/usr/libexec
paths 按名称查找 userland proxy Binaries时,请使用docker-
前缀。白鲸/白鲸 #47804
错误修复和增强功能
*client.Client
实例现在对于多个 goroutines 的并发使用总是安全的。以前,这可能会导致数据争用,当WithAPIVersionNegotiation()
选项。白鲸/白鲸#47961- 修复了导致 Docker CLI 泄漏 Unix 套接字的 bug
$TMPDIR
在某些情况下。docker/cli #5146 的 - 当与
--privileged
.白鲸/白鲸 #47500 - rootless:overlay2:在 Linux 内核版本 5.11 及更高版本中使用 rootless-mode 时,支持原生覆盖层差异。白鲸/白鲸#47605
- 修复
StartInterval
默认值 healthcheck 以反映记录的 5 秒值。moby/moby#47799 - 修复
docker save
和docker load
当用户取消作时,不在守护程序端结束,例如使用 .白鲸/白鲸#47629Ctrl+C - 这
StartedAt
属性现在在容器启动之前记录,从而保证StartedAt
总是在FinishedAt
.白鲸/白鲸#47003 - Windows 上的 Windows 容器使用的内部 DNS 解析器现在默认将请求转发到外部 DNS 服务器。这使得
nslookup
解析外部主机名。可以通过daemon.json
用"features": { "windows-dns-proxy": false }
.在将来的发行版中,将删除该配置选项。白鲸/白鲸#47826 - 当 CLI 没有读取配置文件的权限时,打印警告。docker/cli 中的问题 #5077
- 修复容器附加时 goroutine 和文件描述符泄漏。白鲸/白鲸#45052
- 在守护程序启动期间清除所有已停止或失效容器的网络状态。白鲸/白鲸#47984
- 以原子方式写入卷选项 JSON,以避免在系统崩溃后出现“invalid JSON”错误。白鲸/白鲸#48034
- 允许具有相同父级的多个 macvlan 网络。白鲸/白鲸#47318
- 允许在公布 BuildKit 的 Windows 守护程序上使用 BuildKit。docker/cli 的 #5178
联网
- 允许在容器创建和网络连接期间为每个接口设置 sysctls。白鲸/白鲸#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 桥接网络启用。白鲸/白鲸#47747- 这使得 IPv4 和 IPv6 行为彼此一致,并降低了支持 IPv6 的容器无意中暴露到网络中的风险。
- 如果您使用
ip6tables
enabled (新的默认值)。 - 如果您使用的是支持 IPv6 的桥接网络,而没有
ip6tables
,这可能是一个重大更改。只有已发布的容器端口 (-p
或--publish
) 可以从 Docker bridge 网络外部访问,并且传出连接伪装成主机。 - 要恢复早期版本的行为,不需要
ip6tables
,将"ip6tables": false
在daemon.json
,或使用 CLI 选项--ip6tables=false
.或者,将ip6tables
enabled、Publish ports 和 Enable direct routing。 - 跟
ip6tables
enabled,如果ip6tables
在您的主机上不起作用,Docker Engine 将启动,但无法创建支持 IPv6 的网络。
IPv6 网络配置改进
- 唯一本地地址 (ULA) 基本前缀会自动添加到
default-address-pools
如果此参数未手动配置,或者它不包含 IPv6 前缀。白鲸/白鲸#47853- 在此版本之前,要创建支持 IPv6 的网络,必须使用
--subnet
选项指定 IPv6 子网,或将 IPv6 范围添加到default-address-pools
在daemon.json
. - 从此版本开始,使用
--ipv6
并且这些选项未定义 IPv6 子网,则使用 IPv6 唯一本地地址 (ULA) 基本前缀。 - ULA 前缀派生自引擎主机 ID,因此它在主机之间和时间范围内是唯一的。
- 在此版本之前,要创建支持 IPv6 的网络,必须使用
- 现在可以将任何大小的 IPv6 地址池添加到
default-address-pools
.白鲸/白鲸 #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
在命令行上。白鲸/白鲸 #47867 - IPv6 网络的直接路由,使用
ip6tables
启用。白鲸/白鲸#47871- 添加了网桥驱动程序选项
com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>
. - 默认行为
nat
与以前运行ip6tables
启用。为每个已发布的容器端口设置 NAT 和伪装规则。 - 当设置为
routed
,则不会为已发布的端口配置 NAT 或伪装规则。如果主机的网络可以将容器地址的数据包路由到主机,则这将启用对容器的直接 IPv6 访问。已发布的端口将在容器的防火墙中打开。 - 当端口映射仅适用于
routed
模式,仅地址0.0.0.0
或::
,并且不得提供 host 端口。 - 请注意,在
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 或伪装。白鲸/白鲸 #47745 - 在未指定主机端口的情况下发布端口或给定主机端口范围时,将为 IPv4 和 IPv6 分配相同的端口。白鲸/白鲸#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 中引入,不再具有任何影响。白鲸/白鲸#47963- 如果由于只读而无法在接口上禁用 IPv6
/proc/sys/net
,则环境变量允许容器无论如何启动。 - 在此版本中,如果无法为接口禁用 IPv4,则只需使用
--ipv6
创建它时。其他解决方法是将作系统配置为在新接口上默认禁用 IPv6,挂载/proc/sys/net
read-write 的,或者使用不支持 IPv6 的内核。
- 如果由于只读而无法在接口上禁用 IPv6
- 对于启用了 IPv6 的桥接网络,请勿尝试将桥接的内核分配的链路本地地址替换为
fe80::1
.白鲸/白鲸 #47787
删除
- 弃用实验性 GraphDriver 插件。moby/moby#48050、docker/cli#5172
- pkg/archive:弃用
NewTempArchive
和TempArchive
.这些类型仅在测试中使用,并将在下一版本中删除。白鲸/白鲸#48002 - pkg/archive:弃用
CanonicalTarNameForPath
白鲸/白鲸#48001 - 弃用 pkg/dmesg。此软件包已不再使用,并将在下一版本中删除。白鲸/白鲸#47999
- 废弃
pkg/stringid.ValidateID
和pkg/stringid.IsShortID
白鲸/白鲸#47995 - runconfig:废弃
SetDefaultNetModeIfBlank
并移动ContainerConfigWrapper
自api/types/container
白鲸/白鲸#48007 - runconfig:废弃
DefaultDaemonNetworkMode
并移动到daemon/network
白鲸/白鲸#48008 - runconfig:废弃
opts.ConvertKVStringsToMap
.此实用程序已不再使用,并将在下一发行版中删除。白鲸/白鲸#48016 - runconfig:废弃
IsPreDefinedNetwork
.白鲸/白鲸#48011
应用程序接口
- containerd 镜像存储:
POST /images/{name}/push
现在支持platform
参数(JSON 编码的 OCI 平台类型),允许从多平台镜像中选择特定平台清单。这是实验性的,在未来的 API 版本中可能会发生变化。白鲸/白鲸#47679 POST /services/create
和POST /services/{id}/update
现在支持OomScoreAdj
.白鲸/白鲸 #47950ContainerList
API 返回容器注释。白鲸/白鲸#47866POST /containers/create
和POST /services/create
现在拿Options
作为HostConfig.Mounts.TmpfsOptions
允许设置 tmpfs 挂载的选项。白鲸/白鲸#46809- 这
Healthcheck.StartInterval
现在,在使用低于 v1.44 的 API 版本更新 Swarm 服务时,可以正确忽略属性。白鲸/白鲸#47991 GET /events
现在支持镜像create
构建新镜像时发出的事件,无论它是否被标记。moby/moby#47929GET /info
现在包括一个Containerd
字段,其中包含有关守护程序用于运行容器和插件的 containerd API 套接字和 containerd 命名空间的位置的信息。白鲸/白鲸#47239- 弃用镜像检查输出中的非标准 (config) 字段。这
Config
字段(用于docker image inspect
) 返回的其他字段不属于镜像配置,也不属于 Docker 镜像规范和 OCI 镜像规范。这些字段永远不会设置(并且始终返回类型的默认值),但在留空时不会在响应中省略。由于这些字段并非旨在成为镜像配置响应的一部分,因此它们已被弃用,并将在未来的 API 版本中删除。 - 弃用守护进程标志
--api-cors-header
和相应的daemon.json
configuration 选项。这些将在下一个主要版本中删除。白鲸/白鲸 #45313
以下已弃用的字段当前包含在 API 响应中,但不属于底层镜像的Config
: 白鲸/白鲸 #47941
Hostname
Domainname
AttachStdin
AttachStdout
AttachStderr
Tty
OpenStdin
StdinOnce
Image
NetworkDisabled
(除非设置,否则已省略)MacAddress
(除非设置,否则已省略)StopTimeout
(除非设置,否则已省略)
Go SDK 更改
- 以下函数的客户端 API 回调现在需要 context 参数。白鲸/白鲸#47536
client.RequestPrivilegeFunc
client.ImageSearchOptions.AcceptPermissionsFunc
image.ImportOptions.PrivilegeFunc
- 删除 Image types 的已弃用别名。白鲸/白鲸 #47900
ImageImportOptions
ImageCreateOptions
ImagePullOptions
ImagePushOptions
ImageListOptions
ImageRemoveOptions
- 介绍
Ulimit
的类型别名github.com/docker/go-units.Ulimit
. 这Ulimit
type 在 Go 模块中定义,该模块将来将转换到新位置。 添加了类型别名以减少将类型移动到新位置时带来的摩擦。 别名可确保现有代码继续工作,但其定义将来可能会更改。 建议用户使用此别名,而不是units.Ulimit
径直。白鲸/白鲸#48023
移动和重命名类型,更改其导入路径和导出的名称。白鲸/白鲸#47936, 白鲸/白鲸#47873, 白鲸/白鲸#47887, 白鲸/白鲸#47882, 白鲸/白鲸#47921, 白鲸/白鲸#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
type 设置为api/types/backend
. - 将
VolumesPruneReport
type 设置为api/types/volume
. - 将
EventsOptions
type 设置为api/types/events
. - 将
ImageSearchOptions
type 设置为api/types/registry
. - 落
Network
前缀并将以下类型移动到api/types/network
:NetworkCreateResponse
NetworkConnect
NetworkDisconnect
NetworkInspectOptions
EndpointResource
NetworkListOptions
NetworkCreateOptions
NetworkCreateRequest
NetworksPruneReport
- 移动
NetworkResource
自api/types/network
.
打包更新
- 将 Buildx 更新到 v0.15.1。docker/docker-ce-packaging的 #1029
- 更新 BuildKit 至 v0.14.1。白鲸/白鲸#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 Module Mirror 拾取,因此无法完全更改 v27.0.0。 为了解决这个问题,27.0.1 将是 27.0 的第一个版本。