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
启用该选项后,现在保留清单在 manifest-index 中出现的原始顺序。白鲸/白鲸 #48712manifests
错误修复和增强功能
- 使用 或 log 驱动程序读取日志时,尝试读取或解析底层日志文件时出现的任何错误都将导致跳过文件的其余部分并移动到下一个日志文件(如果存在),而不是将错误返回给客户端并关闭流。这些错误可以在 Docker 守护程序日志中查看,并在配置跟踪时导出到跟踪。白鲸/白鲸#48842
jsonfile
local
- 读取日志文件时,压缩的日志文件现在仅在需要时解压缩,而不是在启动日志流之前解压缩所有文件。白鲸/白鲸#48842
- 修复了一个问题,该问题意味着,如果内核的模块未加载和启用,则无法从禁用的同一网络上的另一个容器访问桥接网络上一个容器的已发布端口。守护进程现在将尝试加载模块并启用 or 在禁用 userland 代理的情况下创建网络。白鲸/白鲸#48685
userland-proxy
br_netfilter
bridge-nf-call-iptables
bridge-nf-call-ip6tables
- 修复 和 kernel 模块的加载。白鲸/白鲸#48966
bridge
br_netfilter
- containerd 镜像存储:修复了 Docker 守护程序无法完全启动并显示 containerd snapshotter 和许多构建/镜像的“context deadline exceeded error”的问题。白鲸/白鲸#48954
- containerd 镜像存储:修复了未进行垃圾回收的部分提取镜像的问题。MOBY#48910、MOBY/MOBY#48957
- containerd image store:修复了在 中输出重复引用的问题。白鲸/白鲸#48785
docker image inspect
RepoDigests
- containerd image store:修复了在 HTTPS 请求因非 TLS 相关错误而失败的情况下无法连接到某些不安全的注册表的问题。白鲸/白鲸#48758
- containerd image store:在标记非悬空镜像时删除令人困惑的警告日志。白鲸/白鲸#49010
- containerd 镜像存储:不要在 中为名称添加下划线。docker/cli 的 #5519
docker image ls --tree
- containerd 镜像存储:将 中的列名称更改为 。docker/cli 的 #5518
USED
docker image ls --tree
IN USE
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
- 修复通过选项创建的匿名卷未标记为匿名的问题。白鲸/白鲸#48755
--mount
- 在守护进程使用 live-restore 重新启动后,确保将 iptables 跳转到链放在其他规则之前。白鲸/白鲸#48714
DOCKER-USER
- 修复 OTel 仪表可能导致的内存泄漏问题。白鲸/白鲸#48693
- 为每个镜像存储创建不同的构建历史记录数据库。白鲸/白鲸 #48688
- 修复了在紧密循环中进行 DNS 解析时导致内存使用过多的问题。白鲸/白鲸#48840
- 修复了在 期间阻止取消镜像拉取的错误。docker/cli 命令 #5654
docker run
- 如果凭证未更改,则 and 命令不再更新配置文件。docker/cli 命令 #5569
docker login
docker logout
- 优化以减少闪烁问题。docker/cli#5588、docker/cli#5635
docker stats
- 修复了无法访问的插件路径,从而阻止了插件被检测到的问题。docker/cli #5652 的
- 添加对 Cobra 生成的 shell 完成的支持。docker/cli 的 #5614
events --filter
- 修复 的 bash 完成。docker/cli 命令 #5563
events --filter daemon=
- 改进容器的 shell 完成。docker/cli 命令 #5540
docker rm
- 为标志添加 shell 完成。docker/cli 命令 #5540
--platform
- rootless:通过容器设备接口 (CDI) 集成进行创建和访问。白鲸/白鲸#49027
/etc/cdi
/var/run/cdi
删除
- 弃用 和 .这些函数将不再使用,并将在下一个版本中删除。白鲸/白鲸#48719
Daemon.Exists()
Daemon.IsPaused()
- 弃用 和 .白鲸/白鲸#48697
container.ErrNameReserved
container.ErrNameNotReserved
- Deprecate - 此软件包仅在内部使用,并将在下一版本中删除。白鲸/白鲸#48863
pkg/platform
- 弃用 。此字段不再使用,并将在下一版本中删除。白鲸/白鲸#49013
RepositoryInfo.Class
- Go SDK:修复了 的弃用问题,该弃用自 v27.2.1 起已弃用。docker/cli #5552
cli/command.ConfigureAuth()
- Go SDK:废弃类型,支持 Go 的 docker/cli#5548
cli.Errors
errors.Join
打包更新
- 将 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(仅限静态二进制文件)更新到 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 image store:修复从摘要引用引用的镜像启动的容器使用的未标记镜像的问题。白鲸/白鲸#48488
docker image prune -a
- 向 daemon 选项添加一个标志。白鲸/白鲸#48487
--feature
- 更新了标志的处理方式,使其与 NVIDIA Container Runtime 保持一致。白鲸/白鲸#48483
--gpus=0
- 支持 WSL2 镜像模式网络对来自 Windows 主机的数据包使用接口。白鲸/白鲸#48514
loopback0
- 修复了以下问题:在通常未加载内核模块的主机上,使用 、(默认)作为转发数据包的防火墙,该防火墙具有 DROP 规则,导致 IPv4 桥接网络上的容器之间无法通信。白鲸/白鲸#48511
--iptables=false
--ip6tables=true
br_netfilter
- CLI:修复了如果未传递参数/卷,命令会导致 CLI 崩溃的问题。docker/cli #5426 命令
docker volume update
- 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 image store:修复在输出中隐藏的非容器镜像。白鲸/白鲸#48402
docker image ls
- containerd image store:改进了镜像平台不匹配时的错误消息。白鲸/白鲸#48415
docker pull
- CLI:修复了导致无法从传入的注册表地址中删除存储库名称,从而导致凭据存储在错误密钥下的问题。docker/cli 命令 #5385
docker login
- CLI:修复了在 CLI 进程暂停,然后在等待用户身份验证时恢复时有时会导致浏览器登录流失败的问题。docker/cli 命令 #5376
- CLI:现在,如果使用或但不以非交互方式调用,则返回错误而不是挂起。docker/cli #5402 的
docker login
--password
--password-stdin
--user
打包更新
- 将 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 镜像 ls
的多平台支持
实验的
这是实验性的,可能随时更改,没有任何向后兼容性。启用 containerd 镜像存储后,该命令(或简写)现在支持一个标志,该标志现在显示
如果镜像是多平台镜像。docker image ls
docker images
--tree
应用程序接口
GET /images/json
响应现在包括 字段,其中包含有关镜像索引中包含的子清单的信息。这包括特定于平台的清单和生成证明等内容。Manifests
仅当请求还将 query 参数设置为 时,才会填充新字段。
manifests
true
实验的
这是实验性的,可能随时更改,没有任何向后兼容性。
错误修复和增强功能
- CLI:修复了通过 SSH 的远程情景中,CLI 在连接到远程主机时会分配伪 TTY 的问题,这在极少数情况下会导致问题。docker/cli #5351 命令
- 修复了阻止创建以 64 位边界结尾的网络的问题。白鲸/白鲸 #48326
--ip-range
- CLI:端口绑定中显示的 IPv6 地址现在被括起来。docker/cli #5365 命令
docker ps
- containerd image store:修复解压缩镜像失败时的早期错误 exit。白鲸/白鲸#48376
docker load
- containerd 镜像存储:修复上一个镜像在 之后未保留为悬空的问题。白鲸/白鲸 #48380
docker pull
打包更新
- 更新 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
注意
与包含 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 版本历史记录。
错误修复和增强功能
- 修复了在从大型 Dockerfile 构建时可能导致错误的回归。白鲸/白鲸#48245
ResourceExhausted desc = grpc: received message larger than max
- CLI:修复打印虚假错误消息的问题。docker/cli #5296
docker attach
context cancelled
- CLI:修复 exiting on,而不是将信号转发到容器并等待其退出。docker/cli #5302 命令
docker attach
SIGINT
- CLI:修复和选项未生效。docker/cli 命令 #5339
--device-read-bps
--device-write-bps
- 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
- 从 Windows 程序包中删除未使用的二进制文件。docker/docker-ce-packaging的 #1045
docker-proxy.exe
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 版本历史记录。
错误修复和增强功能
- 无根:添加以防止在使用 systemd moby/moby 的 cgroup v2 主机上启动守护进程时出错 #48141
Requires=dbus.socket
- containerd 集成:使用 BuildKit moby/moby 构建镜像时,现在可以正确发出事件#48182
image tag
- CLI:为 、 和 moby/moby 启用 shell 补全 #5261
docker image rm
docker image history
docker image inspect
- CLI:添加和改进各种标志 moby/moby 的 shell 补全 #5261
- CLI:在 docker/cli 中添加 OOMScoreAdj #5274
docker service create
docker stack
- CLI:添加对环境变量(实验性)docker/cli#5271 的支持
DOCKER_CUSTOM_HEADERS
- CLI: containerd-integration: 修复在不支持的 API 版本上将标志默认为环境变量值的问题 docker/cli#5248
docker push
--platform
DOCKER_DEFAULT_PLATFORM
- CLI:修复:在提示符 docker/cli 上取消上下文 #5260
login
- CLI:修复:在附加到容器时向 CLI 发送终止请求时,等待容器退出后再关闭流 docker/cli#5250
荒废的
- 该软件包已弃用,并将在下一版本 moby/moby#48185 中删除
pkg/rootless/specconv
- 该软件包已弃用,并将在下一版本 moby/moby#48185 中删除
pkg/containerfs
- 该软件包已弃用,并将在下一版本 moby/moby#48185 中删除
pkg/directory
api/types/system
: 删除已弃用的 MOBY/MOBY#48184Info.ExecutionDriver
打包更新
- 将 Buildx 更新到 v0.16.1。moby/docker-ce-打包#1039
- 将 Compose 更新到 v2.29.0。moby/docker-ce-packaging的 #1038
- 将 Containerd(仅限静态二进制文件)更新到 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
- 修复了在支持具有用户命名空间的原生叠加层的系统上尝试拉取启用了 rootless 的镜像时导致错误的回归。白鲸/白鲸#48086
fail to register layer: failed to Lchown
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:废弃 field 和 type。这些定义由独立(“经典”)Swarm API 使用,但从未在 Docker 引擎本身中实现。白鲸/白鲸#48055
ContainerJSONBase.Node
ContainerNode
27.0.1
2024-06-24有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑:
- docker/cli,27.0.0 里程碑
- moby/moby,27.0.0 里程碑
- 已弃用和已删除的功能,请参阅 已弃用的功能。
- 对 Engine API 的更改,请参阅 API 版本历史记录。
新增功能
- containerd 镜像存储:当多平台镜像的所有平台都在本地可用时,向其添加标志并改进默认行为。docker/cli#4984、moby/moby#47679
--platform
docker image push
- 在服务的网络中添加对 for 的支持。docker/cli #5125 命令
docker stack deploy
driver_opts
- 在按带前缀的名称查找用户空间代理二进制文件时,请考虑 additional 和 paths。白鲸/白鲸 #47804
/usr/local/libexec
/usr/libexec
docker-
错误修复和增强功能
*client.Client
实例现在对于多个 goroutines 的并发使用总是安全的。以前,当使用该选项时,这可能会导致数据争用。白鲸/白鲸#47961WithAPIVersionNegotiation()
- 修复了在某些情况下导致 Docker CLI 泄漏 Unix 套接字的错误。docker/cli #5146 的
$TMPDIR
- 与 结合使用时,不要忽略自定义 seccomp 配置文件。白鲸/白鲸 #47500
--privileged
- rootless:overlay2:在 Linux 内核版本 5.11 及更高版本中使用 rootless-mode 时,支持原生覆盖层差异。白鲸/白鲸#47605
- 修复 healthcheck 的默认值,以反映记录的 5s 值。moby/moby#47799
StartInterval
- 修复,并且在用户取消操作时不在守护程序端结束,例如使用 .白鲸/白鲸#47629
docker save
docker load
Ctrl+C - 现在,容器的属性在容器启动之前记录,从而保证 始终在 之前。白鲸/白鲸#47003
StartedAt
StartedAt
FinishedAt
- Windows 上的 Windows 容器使用的内部 DNS 解析器现在默认将请求转发到外部 DNS 服务器。这样可以解析外部主机名。可以通过 禁用此行为,使用 。在将来的发行版中,将删除该配置选项。白鲸/白鲸#47826
nslookup
daemon.json
"features": { "windows-dns-proxy": false }
- 当 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
不再是实验性的。如果任何其他功能不需要 IPv6,您可以删除配置选项并继续使用 IPv6。experimental
ip6tables
现在默认为 Linux 桥接网络启用。白鲸/白鲸#47747- 这使得 IPv4 和 IPv6 行为彼此一致,并降低了支持 IPv6 的容器无意中暴露到网络中的风险。
- 如果您在启用(新默认值)的情况下运行 Docker Engine,则不会产生任何影响。
ip6tables
- 如果您使用的是支持 IPv6 的桥接网络,而没有 ,则这可能是一个重大更改。只有已发布的容器端口 ( 或 ) 可以从 Docker 桥接网络外部访问,并且传出连接伪装成主机。
ip6tables
-p
--publish
- 要恢复早期版本的行为,请在 中设置 ,或使用 CLI 选项 。或者,将 Enable (启用)、publish ports (发布端口) 和 enable direct routing(直接路由)保留为 enabled。
ip6tables
"ip6tables": false
daemon.json
--ip6tables=false
ip6tables
- 启用后,如果 在您的主机上无法正常工作,Docker Engine 将启动,但无法创建支持 IPv6 的网络。
ip6tables
ip6tables
IPv6 网络配置改进
- 如果此参数未手动配置,或者不包含 IPv6 前缀,则会自动将唯一本地地址 (ULA) 基本前缀添加到该前缀。白鲸/白鲸#47853
default-address-pools
- 在此版本之前,要创建支持 IPv6 的网络,必须使用选项指定 IPv6 子网,或将 IPv6 范围添加到 中。
--subnet
default-address-pools
daemon.json
- 从此版本开始,当使用这些选项创建桥接网络且未定义 IPv6 子网时,将使用 IPv6 唯一本地地址 (ULA) 基本前缀。
--ipv6
- ULA 前缀派生自引擎主机 ID,因此它在主机之间和时间范围内是唯一的。
- 在此版本之前,要创建支持 IPv6 的网络,必须使用选项指定 IPv6 子网,或将 IPv6 范围添加到 中。
- 现在可以将任何大小的 IPv6 地址池添加到 。白鲸/白鲸 #47768
default-address-pools
- 现在,可以使用 in 或命令行在所有自定义网桥网络上默认启用 IPv6。白鲸/白鲸 #47867
"default-network-opts": { "bridge": {"com.docker.network.enable_ipv6": "true"}}
daemon.json
dockerd --default-network-opt=bridge=com.docker.network.enable_ipv6=true
- IPv6 网络的直接路由,已启用。白鲸/白鲸#47871
ip6tables
- 添加了网桥驱动程序选项 。
com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>
- 默认行为 与以前在启用的情况下运行的版本相同。为每个已发布的容器端口设置 NAT 和伪装规则。
nat
ip6tables
- 设置为 时,不会为已发布的端口配置 NAT 或伪装规则。如果主机的网络可以将容器地址的数据包路由到主机,则这将启用对容器的直接 IPv6 访问。已发布的端口将在容器的防火墙中打开。
routed
- 当端口映射仅适用于模式时,仅允许地址或,并且不得提供主机端口。
routed
0.0.0.0
::
- 请注意,如果在网络中设置了路由,则可以从任何远程地址访问已发布的容器端口(in 或 mode),除非 Docker 主机的防火墙有其他限制。例如:。
nat
routed
docker network create --ipv6 -o com.docker.network.bridge.gateway_mode_ipv6=routed mynet
- 该选项也可用,但行为相同,但适用于 IPv4。
com.docker.network.bridge.gateway_mode_ipv4=<nat|routed>
- 添加了网桥驱动程序选项 。
- 如果主机上正在运行 firewalld,Docker 会创建策略以允许从任何区域转发到该区域。这样就可以使用可路由的 IPv6 地址配置桥接网络,而无需 NAT 或伪装。白鲸/白鲸 #47745
docker-forwarding
docker
- 在未指定主机端口的情况下发布端口或给定主机端口范围时,将为 IPv4 和 IPv6 分配相同的端口。白鲸/白鲸#47871
- 例如,将导致为 和 分配相同的临时端口,并将从两个地址系列的范围中选择相同的端口。
-p 80
0.0.0.0
::
-p 8080-8083:80
- 同样,发布到特定地址的端口将被分配相同的端口。例如。
-p 127.0.0.1::80 -p '[::1]::80'
- 如果所有必需的地址上都没有可用的端口,则容器创建将失败。
- 例如,将导致为 和 分配相同的临时端口,并将从两个地址系列的范围中选择相同的端口。
- 版本 26.1.1 中引入的 Environment variable 不再具有任何影响。白鲸/白鲸#47963
DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE
- 如果由于 read-only 而无法在接口上禁用 IPv6,则环境变量允许容器无论如何启动。
/proc/sys/net
- 在此版本中,如果无法为接口禁用 IPv4,则只需在创建网络时使用即可为网络显式启用 IPv6。其他解决方法是将操作系统配置为在新接口上默认禁用 IPv6、挂载读写或使用不支持 IPv6 的内核。
--ipv6
/proc/sys/net
- 如果由于 read-only 而无法在接口上禁用 IPv6,则环境变量允许容器无论如何启动。
- 对于启用了 IPv6 的桥接网络,请勿尝试将桥接的内核分配的链路本地地址替换为 。白鲸/白鲸 #47787
fe80::1
删除
- 弃用实验性 GraphDriver 插件。moby/moby#48050、docker/cli#5172
- pkg/archive:弃用和 .这些类型仅在测试中使用,并将在下一版本中删除。白鲸/白鲸#48002
NewTempArchive
TempArchive
- pkg/archive:废弃 moby/moby#48001
CanonicalTarNameForPath
- 弃用 pkg/dmesg。此软件包已不再使用,并将在下一版本中删除。白鲸/白鲸#47999
- 废弃和 moby/moby#47995
pkg/stringid.ValidateID
pkg/stringid.IsShortID
- runconfig: 废弃并迁移到 moby/moby#48007
SetDefaultNetModeIfBlank
ContainerConfigWrapper
api/types/container
- runconfig:废弃并迁移到 moby/moby#48008
DefaultDaemonNetworkMode
daemon/network
- runconfig:弃用 。此实用程序已不再使用,并将在下一发行版中删除。白鲸/白鲸#48016
opts.ConvertKVStringsToMap
- runconfig:弃用 。白鲸/白鲸#48011
IsPreDefinedNetwork
应用程序接口
- containerd 镜像存储:现在支持一个参数(JSON 编码的 OCI 平台类型),该参数允许从多平台镜像中选择特定的平台清单。这是实验性的,在未来的 API 版本中可能会发生变化。白鲸/白鲸#47679
POST /images/{name}/push
platform
POST /services/create
现在支持 .白鲸/白鲸 #47950POST /services/{id}/update
OomScoreAdj
ContainerList
API 返回容器注释。白鲸/白鲸#47866POST /containers/create
现在作为允许为 tmpfs 挂载设置选项的一部分。白鲸/白鲸#46809POST /services/create
Options
HostConfig.Mounts.TmpfsOptions
- 现在,当使用低于 v1.44 的 API 版本更新 Swarm 服务时,可以正确忽略该属性。白鲸/白鲸#47991
Healthcheck.StartInterval
GET /events
现在支持在构建新镜像时发出的镜像事件,无论它是否被标记。moby/moby#47929create
GET /info
现在包含一个字段,其中包含有关守护程序用于运行容器和插件的 containerd API 套接字和 containerd 命名空间的位置的信息。白鲸/白鲸#47239Containerd
- 弃用镜像检查输出中的非标准 (config) 字段。此端点返回的字段(用于)返回的其他字段不属于镜像配置,也不属于 Docker 镜像规范和 OCI 镜像规范。这些字段永远不会设置(并且始终返回类型的默认值),但在留空时不会在响应中省略。由于这些字段并非旨在成为镜像配置响应的一部分,因此它们已被弃用,并将在未来的 API 版本中删除。
Config
docker image inspect
- 弃用 daemon 标志和相应的配置选项。这些将在下一个主要版本中删除。白鲸/白鲸 #45313
--api-cors-header
daemon.json
以下已弃用的字段当前包含在 API 响应中,但不属于底层镜像的一部分:moby/moby#47941Config
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
- 为 引入类型别名。
API 中使用的类型在 Go 模块中定义,该模块将来将转换到新位置。
添加了类型别名以减少将类型移动到新位置时带来的摩擦。
别名可确保现有代码继续工作,但其定义将来可能会更改。
建议用户使用此别名,而不是直接使用。白鲸/白鲸#48023
Ulimit
github.com/docker/go-units.Ulimit
Ulimit
units.Ulimit
移动和重命名类型,更改其导入路径和导出的名称。白鲸/白鲸#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
api/types/backend
- 将类型移动到 .
VolumesPruneReport
api/types/volume
- 将类型移动到 .
EventsOptions
api/types/events
- 将类型移动到 .
ImageSearchOptions
api/types/registry
- 删除 prefix 并将以下类型移动到 :
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 的第一个版本。