Docker 引擎 20.10 发行说明
本文档介绍了 Docker Engine 版本 20.10 的最新更改、添加内容、已知问题和修复。
2024年10月20日
2023-04-04更新
错误修复和增强功能
- 修复了一些可能导致 Swarm 加密覆盖网络无法兑现其保证的问题,解决了
CVE-2023-28841、
CVE-2023-28840和
CVE-2023-28842。
- 现在,缺乏对加密覆盖网络的内核支持会报告为错误。
- 加密的覆盖网络是急切建立的,而不是等待多个节点连接。
- 现在可以通过使用
xt_bpf
内核模块在红帽企业 Linux 9 上使用加密的覆盖网络。 - Swarm 覆盖网络的用户应查看 GHSA-vwm3-crmr-xfxw, 以确保不会发生意外暴露。
- 将 github.com/containerd/fifo 升级到 v1.1.0 以修复潜在的恐慌 moby/moby#45216。
- 修复已安装的 cli 插件 docker/cli#4091缺少的 Bash 补全。
20.10.23
2023-01-19此版本的 Docker Engine 包含 Docker Compose、Docker Buildx、containerd 的更新版本,以及一些小错误修复和增强功能。
更新
- 将 Docker Compose 更新至 v2.15.1。
- 将 Docker Buildx 更新到 v0.10.0。
- 将containerd(
containerd.io
包)更新到 v1.6.15。 - 更新包版本控制格式以
docker-compose-cli
允许发行版版本更新 docker/docker-ce-packaging#822。 - 将 Go 运行时更新到 1.18.10,
错误修复和增强功能
修复了与启用 BuildKit 的 moby/moby#44650
docker build
一起使用时失败的问题。--add-host=host.docker.internal:host-gateway
恢复 seccomp:阻止套接字调用
AF_VSOCK
默认配置文件 moby/moby#44712 。这一变化虽然从安全角度来看是有利的,但导致某些用例的行为发生变化。因此,我们正在恢复它以确保受影响用户的稳定性和兼容性。
然而,
AF_VSOCK
容器中的用户应该认识到,这个(特殊)地址族当前在任何版本的 Linux 内核中都没有命名空间,并且可能会导致意外的行为,例如容器直接与主机管理程序通信。未来版本将过滤
AF_VSOCK
.需要允许容器通过未命名空间进行通信的用户AF_VSOCK
需要关闭 seccomp 限制或设置自定义 seccomp 配置文件。
20.10.22
2022-12-16此版本的 Docker Engine 包含 Docker Compose、Docker Scan、containerd 的更新版本,以及一些小错误修复和增强功能。
更新
- 将 Docker Compose 更新至 v2.14.1。
- 将 Docker Scan 更新到 v0.23.0。
- 将 containerd (
containerd.io
程序包)更新到 v1.6.13 ,以包含CVE-2022-23471的修复程序 。 - 将 Go 运行时更新至 1.18.9,以包含 CVE-2022-41716、 CVE-2022-41717和 CVE-2022-41720的修复。
错误修复和增强功能
- 改进尝试拉取不受支持的图像格式或 OCI 工件 moby/moby#44413、 moby/moby#44569时的错误消息。
- 修复了为容器moby/moby#44476选择随机端口时忽略主机临时端口范围的问题 。
- 修复使用 OpenSSH 8.9 或更高版本的主机上的
ssh: parse error in message type 27
错误moby/moby#3862。docker build
AF_VSOCK
seccomp:阻止对默认配置文件 moby/moby#44564 的套接字调用。
21.10.20
2022年10月25日此版本的 Docker Engine 包含 Docker Compose、Docker Scan、containerd 的更新版本、为 Ubuntu 22.10 添加的软件包以及一些小错误修复和增强功能。
新的
- 提供 Ubuntu 22.10 (Kinetic Kudu) 的软件包。
allow-nondistributable-artifacts
添加对 Docker Hub moby/moby#44313的支持。
更新
- 将 Docker Compose 更新至 v2.12.2。
- 将 Docker Scan 更新到 v0.21.0。
- 将containerd(
containerd.io
包)更新到 v1.6.9。 - 更新捆绑的 BuildKit 版本以修复
output clipped, log limit 1MiB reached
错误 moby/moby#44339。
错误修复和增强功能
--platform
删除bash 完成中的 实验门docker/cli#3824。- 修复在 Windows moby/moby#44326
Invalid standard handle identifier
上从旧版 CLI 将 Docker 引擎注册为服务时出现的恐慌 。 - 修复在 Windows moby/moby#44332上在 Cygwin 中运行 Git 命令的问题。
20.10.20
2022年10月18日此版本的 Docker Engine 包含对 Git 漏洞 (
CVE-2022-39253 ) 的部分缓解措施,并更新了image:tag@digest
图像引用的处理。
Git 漏洞允许恶意制作的 Git 存储库在用作构建上下文时将任意文件系统路径复制到生成的容器/映像中;这可能发生在守护程序和 API 客户端中,具体取决于所使用的版本和工具。
此版本和守护程序 API 的其他使用者中可用的缓解措施是部分的,并且仅保护构建 Git URL 上下文的用户(例如git+protocol://
)。由于手动运行与子模块交互并签出子模块的 Git 命令仍然可以利用该漏洞,因此用户应立即升级到已修补的 Git 版本以防范此漏洞。更多详细信息可从 GitHub 博客(
“已公布的 Git 安全漏洞”)获得。
更新
- 将 Docker Compose 更新至 v2.12.0。
- 更新了引用的处理
image:tag@digest
。当使用(“按摘要拉取”)拉取图像时image:tag@digest
,图像分辨率通过内容可寻址摘要进行,并且image
不tag
使用 和 。虽然这是预料之中的,但这可能会导致令人困惑的行为,并且可能会被社会工程利用来运行本地图像存储中已存在的图像。 Docker 现在会检查摘要是否与用于拉取映像的存储库名称匹配,否则将产生错误。 - 更新了引用的处理
image:tag@digest
。有关详细信息,请参阅上面的“守护进程”部分。
错误修复和增强功能
- 当使用带有 Git URL 作为构建上下文的经典构建器时,添加了CVE-2022-39253的缓解措施 。
- 针对 CVE-2022-39253向经典 Builder 添加了缓解措施,并将 BuildKit 更新为 v0.8.3-31-gc0149372。
2019年10月20日
2022年10月14日此版本的 Docker Engine 修复了一些错误,并更新了 Docker Compose 版本。
更新
- 将 Docker Compose 更新至 v2.11.2。
- 将 Go 运行时更新至 1.18.7,其中包含 CVE-2022-2879、 CVE-2022-2880和 CVE-2022-41715的修复。
错误修复和增强功能
- 修复可能导致moby/moby#44122
docker builder prune
期间 出现恐慌的问题。docker system prune
- 修复了一个错误,
docker volume prune
如果守护进程以“实时恢复”运行并重新启动,则使用会删除仍在使用的卷 moby/moby#44238。
2018年10月20日
2022-09-09此版本的 Docker Engine 修复了一个低严重性安全问题、一些小错误修复以及 Docker Compose、Docker Buildx、
containerd
和runc
.
更新
- 将 Docker Buildx 更新到 v0.9.1。
- 将 Docker Compose 更新至 v2.10.2。
- 将containerd(
containerd.io
包)更新到 v1.6.8。 - 将 runc 版本更新到 v1.1.4。
- 将 Go 运行时更新至 1.18.6,其中包含 CVE-2022-27664和 CVE-2022-32190的修复。
错误修复和增强功能
- 为 Docker Compose docker/cli#3752添加 Bash 补全 。
- 修复了构建moby/moby#43876期间未保留文件功能的问题 。
- 修复了并发地图读取和地图写入moby/moby#44067可能导致恐慌的问题 。
- 修复与补充组权限相关的安全漏洞,该漏洞可能允许容器进程绕过容器内的主要组限制 CVE-2022-36109、 GHSA-rc4r-wh2q-q6c4。
- seccomp:在默认策略 moby/moby#43991中添加对 Landlock 系统调用的支持。
- seccomp:更新默认策略以支持内核 5.12 - 5.16 moby/moby#43991中引入的新系统调用。
- 修复了图像清单的缓存查找失败的问题,导致到图像注册表moby/moby#44109的冗余往返 。
exec
修复进程和运行状况检查超时时未终止的 问题moby/moby#44018。
2017年10月20日
2022-06-06此版本的 Docker Engine 附带了 Docker Compose 和
containerd
、 和runc
组件的更新版本,以及一些小错误修复。
更新
- 将 Docker Compose 更新到 v2.6.0。
- 将containerd(
containerd.io
包)更新到 v1.6.6 ,其中包含CVE-2022-31030的修复 - 将 runc 版本更新到 v1.1.2 ,其中包含CVE-2022-29162的修复程序 。
- 将 Go 运行时更新至 1.17.11,其中包含 CVE-2022-30634、 CVE-2022-30629、 CVE-2022-30580和 CVE-2022-29804的修复
错误修复和增强功能
- 从 zsh 完成脚本docker/cli#3648中的 docker 命令中删除星号 。
- 修复 Windows 端口与覆盖 moby/moby#43644 的主机模式下已发布端口的冲突。
- 确保性能调整始终应用于 libnetwork 沙箱 moby/moby#43683。
2016年10月20日
2022-05-12此版本的 Docker Engine 修复了针对 macOS 的 Docker CLI 构建中的回归问题,修复了使用 containerd 1.5 及更高版本时的问题,并更新了 Go 运行时以包含CVE-2022-29526docker stats
的修复
。
更新
- 更新 golang.org/x/sys 依赖项,其中包含CVE-2022-29526的修复程序 。
- 更新了
golang.org/x/sys
构建时依赖项,其中包含 CVE-2022-29526的修复程序。 - 将 Go 运行时更新至 1.17.10 ,其中包含CVE-2022-29526的修复程序 。
错误修复和增强功能
- 修复了20.10.15中引入的 macOS 二进制文件中的回归 ,该回归导致了恐慌 docker/cli#43426。
- 修复了使用 containerd 1.5.0 或更高版本moby/moby#43567
docker stats
运行时显示空统计信息 的问题。 - 对 CLI 插件使用“弱”依赖项,以防止用户从下载的 RPM 包docker/docker-ce-packaging#659
docker scan
执行离线安装时出现“冲突请求”错误 。
2015年10月20日
2022-05-05此版本的 Docker Engine 附带了compose
、
buildx
、containerd
和runc
组件的更新版本,以及一些小错误修复。
更新
- 将 Docker Compose 更新到 v2.5.0。
- 将 Docker Buildx 更新到 v0.8.2。
- 将 Go 运行时更新到 1.17.9。
- 将containerd(
containerd.io
包)更新到 v1.6.4。 - 将 runc 版本更新到 v1.1.1。
错误修复和增强功能
- 使用 RWMutex 作为 stateCounter 来防止潜在的锁定拥塞 moby/moby#43426。
- 防止守护进程在某些情况下无法找到可用 IP 范围的问题 moby/moby#43360
- 添加 CentOS 9 流和 Fedora 36 的软件包。
已知的问题
- 我们发现20.10.15 版本中的macOS CLI 二进制文件存在问题 。此问题已在20.10.16版本中得到解决 。
2014年10月20日
2022-03-23此版本的 Docker Engine 更新了容器的默认可继承功能以解决
CVE-2022-24769 问题,还包含新版本的containerd.io
运行时来解决同一问题。
更新
2013年10月20日
2022-03-10此版本的 Docker Engine 包含一些错误修复和打包更改、对docker scan
和docker buildx
命令的更新、Go 运行时的更新版本以及containerd.io
运行时的新版本。与此版本一起,我们现在还提供Docker Compose V2 的.deb
软件包.rpm
,可以使用(可选)docker-compose-plugin
软件包安装。
新的
- 提供Docker Compose V2 的软件包
.deb
。Docker Compose v2.3.3 现在可以使用这些包安装在 Linux 上,该包在 Docker CLI 上提供了子命令。 Docker Compose 插件还可以安装并独立运行,以用作(Docker Compose V1) docker/docker-ce-packaging#638的直接替代品。该软件包还可以在旧版本的 Docker CLI 上使用,支持 CLI 插件(Docker CLI 18.09 及更高版本)。.rpm
docker-compose-plugin
docker compose
docker-compose
compose-cli-plugin
- 为即将推出的 Ubuntu 22.04“Jammy Jellyfish”LTS 版本 docker/docker-ce-packaging#645、 docker/containerd-packaging#271提供软件包。
更新
- 将 buildx 的捆绑版本更新为 v0.8.0。
- 更新
docker buildx
至 v0.8.0。 - 更新
docker scan
(docker-scan-plugin
) 至 v0.17.0。 - 将containerd(
containerd.io
包)更新到 v1.5.10。 - 将捆绑的 runc 版本更新为 v1.0.3。
- 将 Golang 运行时更新为 Go 1.16.15。
- 更新 Fluentd 日志驱动程序以防止潜在的守护进程崩溃,并防止容器在使用moby/moby#43147
fluentd-async-connect=true
且远程服务器无法访问 时挂起。
错误修复和增强功能
- 修复更新容器状态 moby/moby#43166时的竞争条件。
- 更新 etcd 依赖项以防止守护进程错误地持有文件锁 moby/moby#43259
net.ipv4.ping_group_range
修复配置默认sysctl moby/moby#43084时对用户命名空间的检测。- 如果在镜像拉取moby/moby#43333期间发生连接失败,请重试下载镜像清单 。
- 命令行参考和 API 文档中的各种修复。
- 将“本地”日志记录驱动程序与生成大量日志消息的容器一起使用时防止 OOM /moby#43165。
2012年10月20日
2021-12-13
docker scan
此版本的 Docker Engine 仅包含打包方面的更改,并提供了和命令的更新docker buildx
。 v0.11.0 之前的版本docker scan
无法检测
Log4j 2 CVE-2021-44228。我们在此版本中发布了更新版本,docker scan
以帮助您扫描图像中是否存在此漏洞。
笔记
Linux 上的命令
docker scan
目前仅在 x86 平台上受支持。我们尚未提供适用于 Linux 上其他硬件架构的软件包。
该docker scan
功能作为单独的软件包提供,并且根据您的升级或安装方法,“docker scan”可能不会自动更新到最新版本。使用以下说明更新docker scan
到最新版本。您还可以使用以下说明来安装或升级软件包,docker scan
而无需升级 Docker 引擎:
在.deb
基础发行版上,例如 Ubuntu 和 Debian:
$ apt-get update && apt-get install docker-scan-plugin
在基于 rpm 的发行版上,例如 CentOS 或 Fedora:
$ yum install docker-scan-plugin
升级后,验证您是否安装了最新版本docker scan
:
$ docker scan --accept-license --version
Version: v0.12.0
Git commit: 1074dd0
Provider: Snyk (1.790.0 (standalone))
请阅读我们关于 CVE-2021-44228 的博客文章,
了解如何使用该docker scan
命令检查图像是否容易受到攻击。
包装
2011年10月20日
2021-11-17
重要的
由于 Go 1.16中的 net/http 更改,通过环境变量配置的 HTTP 代理不再用于 TLS ( ) 连接。确保您还设置了一个 环境变量来处理 URL 请求。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
请参阅 HTTP/HTTPS 代理部分 ,了解如何配置 Docker 守护进程以使用代理服务器。
分配
- 处理不明确的 OCI 清单解析以缓解 CVE-2021-41190 / GHSA-mc8v-mgrf-8f4m。有关详细信息,请参阅 GHSA-xmmx-7jpf-fx42 。
Windows
- 修复具有只读属性集 moby/moby#42987 的panic.log 文件。
包装
- 将 containerd 更新到 v1.4.12以缓解 CVE-2021-41190 的影响。
- 将 Golang 运行时更新为 Go 1.16.10。
2010年10月20日
2021-10-25
重要的
由于 Go 1.16中的 net/http 更改,通过环境变量配置的 HTTP 代理不再用于 TLS ( ) 连接。确保您还设置了一个 环境变量来处理 URL 请求。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
请参阅 HTTP/HTTPS 代理部分 ,了解如何配置 Docker 守护进程以使用代理服务器。
建设者
- 修复平台匹配逻辑,以修复使用 BuildKit moby/moby
docker build
时在 Arm 计算机上的本地图像缓存中找不到图像的问题 #42954
运行
- 在默认 seccomp 策略中添加对 syscall 的支持
clone3
,以支持运行基于最新版本的 Fedora 和 Ubuntu 的容器。 莫比/莫比/#42836。 - Windows:更新 hcssshim 库以修复容器层中稀疏文件处理的错误,该错误是由 Windows moby/moby#42944的最新更改暴露的。
docker stop
修复一些可能永远挂起的 情况moby/moby#42956。
一群
- 修复更新服务在失败时未回滚的问题 moby/moby#42875。
包装
- 添加 Ubuntu 21.10“Impish Indri”和 Fedora 35 的软件包。
- 更新
docker scan
至v0.9.0 - 将 Golang 运行时更新为 Go 1.16.9。
20.10.9
2021-10-04
此版本是一个安全版本,在 CLI、运行时以及 containerd.io 包的更新版本中进行了安全修复。
重要的
由于 Go 1.16中的 net/http 更改,通过环境变量配置的 HTTP 代理不再用于 TLS ( ) 连接。确保您还设置了一个 环境变量来处理 URL 请求。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
请参阅 HTTP/HTTPS 代理部分 ,了解如何配置 Docker 守护进程以使用代理服务器。
客户
- CVE-2021-41092 确保默认身份验证配置已设置地址字段,以防止凭据发送到默认注册表。
运行
- CVE-2021-41089
在 chroot 内创建父目录,
docker cp
以防止特制容器更改主机文件系统中现有文件的权限。 - CVE-2021-41091
锁定文件权限以防止非特权用户发现和执行
/var/lib/docker
.
包装
已知问题
此版本的静态包附带的二进制文件
ctr
不是静态链接的,并且不会在使用 alpine 作为基础映像的 Docker 映像中运行。用户可以安装该libc6-compat
软件包,或下载以前版本的ctr
二进制文件作为解决方法。有关更多详细信息,请参阅与此问题相关的containerd票证: containerd/containerd#5824。
- 将 Golang 运行时更新为 Go 1.16.8,其中包含 CVE-2021-36221 和 CVE-2021-39293的修复
- 将静态二进制文件、containerd.io rpm 和 deb 包更新为 containerd v1.4.11 和 runc v1.0.2 以解决 CVE-2021-41103 问题。
- 将 rpm 和 deb 软件包的捆绑 buildx 版本更新为 v0.6.3。
20.10.8
2021-08-03
重要的
由于 Go 1.16中的 net/http 更改,通过环境变量配置的 HTTP 代理不再用于 TLS ( ) 连接。确保您还设置了一个 环境变量来处理 URL 请求。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
请参阅 HTTP/HTTPS 代理部分 ,了解如何配置 Docker 守护进程以使用代理服务器。
弃用
- 弃用对加密 TLS 私钥的支持。 RFC 1423 中指定的传统 PEM 加密在设计上是不安全的。由于它不对密文进行身份验证,因此很容易受到填充预言机攻击,从而使攻击者可以恢复明文。对加密 TLS 私钥的支持现已标记为已弃用,并将在即将发布的版本中删除。 泊坞窗/cli#3219
- 弃用 Kubernetes 堆栈支持。在 Kubernetes 上弃用 Compose 后
,Docker CLI 中对 Kubernetes
stack
和命令的支持context
现已标记为已弃用,并将在即将发布的版本 docker/cli#3174中删除。
客户
- 修复Windows docker/cli#3132
Invalid standard handle identifier
上的错误 。
无根
- 避免
can't open lock file /run/xtables.lock: Permission denied
SELinux 主机 moby/moby#42462上出现错误。 - 使用SELinux运行时禁用overlay2以防止权限被拒绝错误 moby/moby#42462。
- 修复openSUSE Tumbleweed moby/moby#42462
x509: certificate signed by unknown authority
上的错误 。
运行
--platform
当使用选项拉取与指定体系结构不匹配的单体系结构 moby/moby#42633时,打印警告。Your kernel does not support swap memory limit
修复使用 cgroups v2 moby/moby#42479运行时的错误警告。HcsShutdownComputeSystem
Windows:修复如果返回ERROR_PROC_NOT_FOUND
错误 ,容器不会停止的情况moby/moby#42613
一群
- 修复由于节点无法清理其旧负载均衡器 IP moby/moby#42538导致可能存在重叠 IP 地址的可能性
- 修复日志代理中的死锁(“调度程序已停止”) moby/moby#42537
包装
已知问题
此版本的静态包附带的二进制文件
ctr
不是静态链接的,并且不会在使用 alpine 作为基础映像的 Docker 映像中运行。用户可以安装该libc6-compat
软件包,或下载以前版本的ctr
二进制文件作为解决方法。有关更多详细信息,请参阅与此问题相关的containerd票证: containerd/containerd#5824。
- 删除 Ubuntu 16.04“Xenial”和 Fedora 32 的包装,因为它们已达到 EOL docker/docker-ce-packaging#560
- 将 Golang 运行时更新为 Go 1.16.6
- 将 rpm 和 deb 软件包的捆绑 buildx 版本更新为 v0.6.1 docker/docker-ce-packaging#562
- 将静态二进制文件和containerd.io rpm和deb包更新为containerd v1.4.9和runc v1.0.1: docker/containerd-packaging#241、 docker/containerd-packaging#245、 docker/containerd-packaging#247。
20.10.7
2021-06-02
客户
- 禁止对已弃用的 cgroup docker/cli#3099发出警告。
- 防止
SIGURG
向 Linux 和 macOS 上的容器发送信号。 Go 运行时(从 Go 1.14 开始)SIGURG
在内部使用信号作为中断来支持可抢占的系统调用。在 Docker CLI 连接到容器的情况下,这些中断将被转发到容器。此修复更改了 Docker CLI 以忽略SIGURG
信号 docker/cli#3107、 moby/moby#42421。
建设者
- 将 BuildKit 更新到版本 v0.8.3-3-g244e8cde
moby/moby#42448:
- 转换执行程序中 exec 挂载的相对挂载点,以解决 runc v1.0.0-rc94 及更高版本中的重大更改。 莫比/buildkit#2137。
- 添加对图像推送 5xx 错误进行重试。 莫比/buildkit#2043。
COPY
修复了重命名使用带有通配符的命令复制的文件时构建缓存不会失效的问题。请注意,此更改会使使用通配符的复制命令的现有构建缓存无效。 莫比/buildkit#2018。- 修复使用挂载moby/buildkit#2076时构建缓存不会失效的问题 。
- 修复使用旧模式 1 图像moby/moby#42382
FROM
时未缓存图像 时的构建失败问题。
记录
- 更新 hcssshim SDK 以使 Windows 上的守护程序日志更简洁 moby/moby#42292。
无根
- 修复在启用了用户命名空间的守护进程上构建映像时不支持的功能 moby/moby#42352。
联网
- 更新 libnetwork 以修复具有内核引导参数的环境中的发布端口
ipv6.disable=1
,并修复导致内部 DNS 查找失败的死锁 moby/moby#42413。
贡献
slirp4netns
将 rootlesskit 更新到 v0.14.2 以修复使用端口驱动程序 moby/moby#42294启动用户态代理时的超时问题。- 修复在无根守护进程 moby/moby#42342上运行 docker-in-docker 时出现“设备或资源繁忙”错误。
包装
- 将containerd更新到v1.4.6,runc v1.0.0-rc95以解决 CVE-2021-30465 moby/moby#42398, moby/moby#42395, docker/containerd-packaging#234
- 将containerd更新到v1.4.5,runc v1.0.0-rc94 moby/moby#42372, moby/moby#42388, docker/containerd-packaging#232。
- 将 Docker Scan 插件包 (
docker-scan-plugin
) 更新到 v0.8 docker/docker-ce-packaging#545。
20.10.6
2021-04-12
客户
- Apple Silicon (darwin/arm64) 支持 Docker CLI docker/cli#3042
- 配置:回退到 v1.7.0 之前的配置文件时打印弃用警告
~/.dockercfg
。未来版本中将删除对此文件的支持 docker/cli#3000
建设者
- 修复经典构建器静默忽略不支持的 Dockerfile 选项并提示启用 BuildKit 而不是 moby/moby#42197
记录
- json-file:修复偶发的意外 EOF 错误 moby/moby#42174
联网
- 修复 docker 20.10 中的回归问题,导致映射端口moby/moby时不再默认绑定 IPv6 地址 #42205
- 修复 API 响应中未包含的隐式 IPv6 端口映射。在 docker 20.10 之前,默认情况下可以通过 IPv4 和 IPv6 访问已发布的端口,但 API 仅包含有关 IPv4 (0.0.0.0) 映射 moby/moby#42205的信息
- 修复 docker 20.10 中的回归,导致 docker-proxy 在所有情况下都不会终止 moby/moby#42205
- 修复 iptables 转发规则在容器删除moby/moby#42205时未被清理的问题
包装
- 将静态二进制文件的containerd 更新到 v1.4.4 。 apt/yum 存储库上的 containerd.io 软件包已经进行了带外更新。包括CVE-2021-21334的修复 。 莫比/莫比#42124
- Debian/Raspbian 11 Bullseye、Ubuntu 21.04 Hirsute Hippo 和 Fedora 34 的软件包 docker/docker-ce-packaging#521 docker/docker-ce-packaging#522 docker/docker-ce-packaging#533
- 通过包在 Linux amd64 上提供
Docker Scan CLI插件作为包
docker/docker-ce-packaging#537
docker-scan-plugin
的推荐依赖项docker-ce-cli
- 包含适用于 arm64 moby/moby 的 VPNKit 二进制文件#42141
插件
- 修复 docker plugin create 与旧版本 Docker moby/moby 不兼容的插件#42256
无根
- 将 RootlessKit 更新到 v0.14.1(另请参阅 v0.14.0 v0.13.2) moby/moby#42186 moby/moby#42232
- dockerd-rootless-setuptool.sh:创建 CLI 上下文“rootless” moby/moby#42109
- dockerd-rootless.sh:禁止以 root 身份运行 moby/moby#42072
- 修复绑定安装现有安装moby/moby时“不允许操作”的问题 #42233
- overlay2:修复“createDirWithOverlayOpaque(...)...输入/输出错误” moby/moby#42235
- overlay2:支持“userxattr”选项(内核5.11) moby/moby#42168
- btrfs:允许非特权用户删除子卷(内核 >= 4.18) moby/moby#42253
- cgroup2:将 cgroup v2 移出实验 moby/moby#42263
20.10.5
2021-03-02
客户
- 恢复
docker/cli#2960以修复挂起
docker start --attach
并删除虚假Unsupported signal: <nil>. Discarding
消息。 docker/cli#2987。
20.10.4
2021-02-26
建设者
- 修复带有空层的内联缓存导入的错误缓存匹配 moby/moby#42061
- 将 BuildKit 更新到 v0.8.2
moby/moby#42061
- 解析器:避免在令牌获取时缓存错误
- fileop:修复校验和以包含输入索引,防止某些缓存未命中
- 修复安装引用键入错误时的引用计数问题(修复
invalid mutable ref
错误) - git:仅为主要远程访问设置令牌,允许使用不同的凭据克隆子模块
- 确保在拉取后删除 /var/lib/docker/buildkit/content/blobs/sha256 中的 blob。清理旧状态运行
builder prune
moby/moby#42065 - 修复并行拉同步回归 moby/moby#42049
- 确保 libnetwork 状态文件不会泄漏 moby/moby#41972
客户
docker login
修复如果不存在配置文件时出现的 恐慌docker/cli#2959- 修复
WARNING: Error loading config file: .dockercfg: $HOME is not defined
docker/cli#2958
运行
- docker info: 沉默无法处理的警告 moby/moby#41958
- 避免为 XGlobalHeader moby/moby 创建父目录#42017
- 创建缺失目录时使用 0755 权限 moby/moby#42017
- 当图像配置中没有匹配的平台时,回退到清单列表 moby/moby#42045 moby/moby#41873
- 修复使用配置的自定义默认运行时moby/moby#41974设置时出现的守护进程恐慌
- 修复守护进程配置为空时的恐慌 moby/moby#41976
- 修复使用无效设备 cgroup 规则启动容器时守护进程发生恐慌的问题 moby/moby#42001
- 当用户名和 UID 匹配moby/moby#42013时修复 userns-remap 选项
- 静态:将 runc 二进制文件更新为 v1.0.0-rc93 moby/moby#42014
记录器
labels-regex
即使labels
未设置, 也尊重配置moby/moby#42046- 正确处理长日志消息,防止 awslog 在非阻塞模式下分割大于 16kB 的事件 mobymoby#41975
无根
- 通过将 systemd KillMode 设置为混合moby/moby#41956来防止服务在停止时挂起
- dockerd-rootless.sh:添加拼写错误保护 moby/moby#42070
- 将 rootlesskit 更新到 v0.13.1 以修复 IPv6 地址的处理 moby/moby#42025
- 允许在用户 moby/moby#41957内创建 FIFO
安全
- 配置文件:seccomp:更新到 Linux 5.11 系统调用列表 moby/moby#41971
一群
- 修复重启后心跳不持续的问题 moby/moby#42060
- 修复潜在的停滞任务 moby/moby#42060
- 仅当或提供
时修复
--update-order
和标记docker/cli#2963--rollback-order
--update-order
--rollback-order
- 修复
docker service rollback
在某些情况下返回非零退出代码 docker/cli#2964 - 修复 docker/cli 上进度条方向不一致的问题
docker service rollback
#2964
20.10.3
2021-02-01
安全
- CVE-2021-21285防止无效映像导致 docker 守护进程崩溃
- CVE-2021-21284锁定文件权限以防止重新映射的根访问 docker 状态
- 确保使用 BuildKit 构建时应用 AppArmor 和 SELinux 配置文件
客户
- 在导入之前检查上下文,以降低提取的文件逃离上下文存储的风险
- Windows:阻止从当前目录 docker/cli#2950执行某些二进制文件
20.10.2
2021-01-04
运行
- 修复使用重启策略恢复容器时守护进程启动挂起但始终无法启动 moby/moby#41729
- overlay2:修复当数据根长度为 24 字节时阻止构建或运行容器的离一错误 moby/moby#41830
- systemd:
sd_notify STOPPING=1
关闭 moby/moby#41832时发送
联网
- 修复 IPv6 端口转发 moby/moby#41805 moby/libnetwork#2604
一群
- 修复 moby/moby 的过滤
replicated-job
和global-job
服务模式 #41806
包装
- buildx 更新至 v0.5.1 docker/docker-ce-packaging#516
20.10.1
2020-12-14
建设者
- buildkit:更新至 v0.8.1,修复了各种错误 moby/moby#41793
包装
- 恢复 systemd 单元中的更改,该更改可能会由于启动顺序冲突而阻止 docker 启动 docker/docker-ce-packaging#514
- buildx 更新至 v0.5.0 docker/docker-ce-packaging#515
20.10.0
2020-12-08
弃用/删除
有关所有已弃用功能的概述,请参阅 已弃用的引擎功能页面。
docker pull
当来自不支持 pull-by-digest 的不合规注册表 时发出警告和弃用通知docker/cli#2872- 针对未经身份验证的 tcp 访问的严厉警告和弃用通知 moby/moby#41285
- 弃用 KernelMemory (
docker run --kernel-memory
) moby/moby#41254 docker/cli#2652 - 弃用
aufs
存储驱动程序 docker/cli#1484 - 弃用具有外部 k/v 存储的主机发现和覆盖网络 moby/moby#40614 moby/moby#40510
- 弃用 Dockerfile 旧版“ENV 名称值”语法,改用
ENV name=value
docker /cli#2743 - 删除 API v1.41 及更高版本的已弃用的“filter”参数 moby/moby#40491
- 在推送moby/moby#41295上禁用分发清单 v2 架构 1
- 删除破解 MalformedHostHeaderOverride 破坏旧的 docker 客户端 (<= 1.12) 在这种情况下,设置
DOCKER_API_VERSION
moby/moby#39076 - 删除“docker engine”子命令 docker/cli#2207
- 从“dab”文件中删除实验性“部署” docker/cli#2216
- 删除已弃用的
docker search --automated
标记--stars
docker /cli#2338 - 不再允许在引擎标签中保留命名空间 docker/cli#2326
应用程序编程接口
- 更新API版本至v1.41
- 指标 API 不需要“实验” moby/moby#40427
GET /events
prune
现在在修剪资源完成后 返回事件moby/moby#41259- 修剪事件返回
container
、network
、volume
、image
和builder
,并且有一个reclaimed
属性,指示回收的空间量(以字节为单位)
- 修剪事件返回
- 添加
one-shot
统计选项以不填充统计信息 moby/moby#40478 - 将操作系统版本信息添加到系统信息的 API (
/info
) moby/moby#38349 - 将 DefaultAddressPools 添加到 docker info moby/moby#40714
- 在moby/moby服务上添加对 PidsLimit 的 API 支持 #39882
建设者
- buildkit,dockerfile:支持
RUN --mount
选项,无需指定实验性 dockerfile#syntax
指令。 莫比/buildkit#1717 - dockerfile:
ARG
命令现在支持在同一行定义多个构建参数,类似于ENV
moby/buildkit#1692 - dockerfile:
--chown
标志ADD
现在允许参数扩展 moby/buildkit#1473 - buildkit:获取授权令牌已移至客户端(如果客户端支持)。密码不会再泄漏到构建守护程序中,并且用户可以在访问凭据或令牌时从构建输出中看到。 莫比/buildkit#1660
- buildkit:与注册表进行推送和拉取通信时出现连接错误,现在会触发重试 moby/buildkit#1791
- buildkit:Git 源现在支持通过构建密钥进行令牌身份验证 moby/moby#41234 docker/cli#2656 moby/buildkit#1533
- buildkit:从 git 源构建现在支持转发 SSH 套接字以进行身份验证 moby/buildkit#1782
- buildkit:避免生成过多日志而导致崩溃或减慢构建速度。如果需要的话会进行剪裁。 莫比/buildkit#1754
- buildkit:将默认的 Seccomp 配置文件更改为 Docker moby/buildkit#1807提供的配置文件
- buildkit:改进了对在 Windows 上公开 SSH 代理套接字的支持 moby/buildkit#1695
- buildkit:使用 --progress=plain moby/buildkit#1435时默认禁用截断
- buildkit:允许更好地处理客户端会话在多个构建共享时丢失 moby/buildkit#1551
- buildkit:秘密:允许使用 env
moby/moby#41234
docker/cli#2656
moby/buildkit#1534提供秘密
- 支持
--secret id=foo,env=MY_ENV
作为将秘密值存储到文件的替代方案。 --secret id=GIT_AUTH_TOKEN
如果 env 存在而文件不存在,则会加载它。
- 支持
- buildkit:支持镜像回退、不安全 TLS 和自定义 TLS 配置 moby/moby#40814
- buildkit:remotecache:步行结果时仅访问每个项目一次
moby/moby#41234
moby/buildkit#1577
- 提高更大图形上的性能和 CPU 使用率
- buildkit:当本地图像平台与moby/moby不匹配时检查远程 #40629
- buildkit:图像导出:创建新图层 blob 时使用正确的媒体类型 moby/moby#41234 moby/buildkit#1541
- buildkit:progressui:修复日志时间格式 moby/moby#41234 docker/cli#2656 moby/buildkit#1549
- buildkit:缓解并行推送上的容器问题 moby/moby#41234 moby/buildkit#1548
- buildkit:内联缓存:修复重复 blob 的处理
moby/moby#41234
moby/buildkit#1568
- 修复了 https://github.com/moby/buildkit/issues/1388缓存工作不可靠的问题
- 修复 https://github.com/moby/moby/issues/41219从缓存层构建的图像丢失数据
- 允许 ssh:// 用于远程上下文 URL moby/moby#40179
- 构建器:删除旧版构建的会话处理(是实验性的) moby/moby#39983
客户
- 向 CLI docker/cli#2262添加 swarm 作业支持
- 添加
-a/--all-tags
到 docker Push docker/cli#2220 - 添加对 Kubernetes 用户名/密码身份验证 docker/cli#2308 的支持
- 添加
--pull=missing|always|never
到run
命令create
docker /cli#1498 - 添加
--env-file
标志以从文件docker/cli#2602docker exec
解析环境变量 -n
添加选项--tail
docker /cli#2646 的简写- 添加日志驱动程序和选项以服务检查“漂亮”格式 docker/cli#1950
- docker run:使用
--cgroupns
docker/cli 指定 cgroup 命名空间模式#2024 docker manifest rm
从本地存储docker/cli#2449中删除清单列表草稿的命令- 将“上下文”添加到“docker版本”和“docker信息” docker/cli#2500
- 将平台标志传播到容器创建 API docker/cli#2551
- 该
docker ps --format
标志现在有一个.State
占位符来打印容器的状态,而无需有关正常运行时间和运行状况检查的其他详细信息 docker/cli#2000 - 添加对 docker-compose 架构 v3.9 docker/cli#2073的支持
- 添加对 docker Push 的支持
--quiet
docker/cli#2197 - 如果启用了 BuildKit,则隐藏 BuildKit 不支持的标志 docker/cli#2123
- 更新标志描述以
docker rm -v
澄清该选项仅删除匿名(未命名)卷 docker/cli#2289 - 改进 docker 服务的任务打印 docker/cli#2341
- docker info:按字母顺序列出 CLI 插件 docker/cli#2236
--label-add/--label-rm
修复、--container-label-add/--container-label-rm
和--env-add/--env-rm
标志的处理顺序docker service update
以允许替换现有值 docker/cli#2668- 修复
docker rm --force
如果一个或多个容器不存在则返回非零退出代码 docker/cli#2678 total_inactive_file
通过使用而不是docker/cli#2415改进内存统计信息显示cache
- 缓解具有过多别名的 YAML 文件 docker/cli#2117
- 仅使用源字段docker/cli#2243设置配置或机密时允许使用高级语法
- 修复读取包含
username
和password
验证的配置文件,即使auth
是空的 docker/cli#2122 - docker cp:在无法统计目标 docker/cli#2221时防止 NPE
- 配置:保留配置文件docker/cli#2228的所有权和权限
记录
- 支持
docker logs
使用所有日志记录驱动程序进行读取(尽力而为) moby/moby#40543 - 添加
splunk-index-acknowledgment
日志选项以与启用了索引确认的 Splunk HEC 配合使用 moby/moby#39987 - 将部分元数据添加到日志日志 moby/moby#41407
- 减少日志文件读取器 moby/moby#40796的分配
- Fluentd:添加 fluentd-async、fluentd-request-ack 并弃用 fluentd-async-connect moby/moby#39086
运行
- 支持cgroup2 moby/moby#40174 moby/moby#40657 moby/moby#40662
- cgroup2:可用时默认使用“systemd”cgroup 驱动程序 moby/moby#40846
- 新的存储驱动程序:fuse-overlayfs moby/moby#40483
- 将 containerd 二进制文件更新到 v1.4.3 moby/moby#41732
docker push
现在默认为latest
标签而不是所有标签 moby/moby#40302- 通过将 max-download-attempts 添加到配置文件moby/moby#39949,添加了在拉取映像时更改连接丢失期间重新连接尝试次数的功能
- 使用现在默认的
io.containerd.runc.v2
运行时 moby/moby#41182添加对 containerd v2 shim 的支持 - cgroup v1:将默认运行时更改为 io.containerd.runc.v2。需要containerd v1.3.0或更高版本。推荐 v1.3.5 或更高版本 moby/moby#41210
- 在自己的 cgroup 命名空间中启动容器 moby/moby#38377
- 为 CIFS 卷启用 DNS 查找 moby/moby#39250
- 使用 MemAvailable 而不是 MemFree 来估计实际可用内存 moby/moby#39481
- 现在,当容器在特权模式下启动时,将遵循
--device
中的标志moby /moby#40291docker run
- 强制保留内部标签 moby/moby#40394
- 将最小内存限制提高到 6M,以解决容器启动期间运行时使用的更高内存 moby/moby#41168
- 供应商 runc v1.0.0-rc92 moby/moby#41344 moby/moby#41317
- 信息:添加有关缺少 blkio cgroup 支持 moby/moby#41083 的警告
- 接受容器创建 moby/moby 的平台规范 #40725
- 修复使用空格查找用户名和组名的处理 moby/moby#41377
联网
- 在 Linux 上的 dockerd 中支持 host.docker.internal moby/moby#40007
- 在 /etc/hosts moby/moby#39837中包含链接容器的 IPv6 地址
--ip6tables
启用 IPv6 iptables 规则(仅当实验时) moby/moby#41622- 如果主机名!= 容器名称moby/moby#39204,则添加主机名别名
- 更好地选择 DNS 服务器(使用 systemd) moby/moby#41022
- 将docker接口添加到firewalld docker区域
moby/moby#41189
moby/libnetwork#2548
- 修复 CentOS8 docker/for-linux 上的 DNS 问题 #957
- 修复了 RHEL 8 上的端口转发(使用 FirewallBackend=nftables moby/libnetwork#2496运行 Firewalld)
- 修复报告“在 CreateEndpoint 期间无法获取网络”的问题 moby/moby#41189 moby/libnetwork#2554
- 记录错误而不是禁用 IPv6 路由器通告失败 moby/moby#41189 moby/libnetwork#2563
--default-address-pool
在某些情况下 不再忽略选项moby/moby#40711- 产生无效地址池的错误 moby/moby#40808 moby/libnetwork#2538
- 修复
DOCKER-USER
当 IPTableEnable=false 时未创建链 moby/moby#40808 moby/libnetwork#2471 - 修复 systemd 环境中启动时的恐慌 moby/moby#40808 moby/libnetwork#2544
- 修复阻止容器通过 macvlan 内部网络进行通信的问题 moby/moby#40596 moby/libnetwork#2407
- 修复 InhibitIPv4 nilpanic moby/moby#40596
- 修复 Windows 覆盖网络删除中的 VFP 泄漏 moby/moby#40596 moby/libnetwork#2524
包装
- docker.service:将 multi-user.target 添加到单元文件 moby/moby#41297中的 After= 中
- docker.service:允许套接字激活 moby/moby#37470
- seccomp:删除 dockerd 对 libseccomp moby/moby 的依赖#41395
无根
- 无根:从实验moby/moby#40759毕业
- 添加 dockerd-rootless-setuptool.sh moby/moby#40950
- 支持
--exec-opt native.cgroupdriver=systemd
moby/moby#40486
安全
- 修复 CVE-2019-14271 在 Glibc moby/moby 下在 chroot 内加载基于 nsswitch 的配置 #39612
- seccomp:白名单
clock_adjtime
。CAP_SYS_TIME
仍需要时间调整 moby/moby#40929 - seccomp:将 openat2 和 faccessat2 添加到默认 seccomp 配置文件 moby/moby#41353
- seccomp:在默认 seccomp 配置文件中允许“rseq”系统调用 moby/moby#41158
- seccomp:允许系统调用 membarrier moby/moby#40731
- seccomp:白名单 io-uring 相关系统调用 moby/moby#39415
- 添加默认 sysctls 以允许 ping 套接字和没有功能的特权端口 moby/moby#41030
- 修复克隆系统调用 moby/moby 的 seccomp 配置文件#39308
一群
- 添加对 swarm 作业的支持 moby/moby#40307
- 添加对堆栈/服务命令的功能支持 docker/cli#2687 docker/cli#2709 moby/moby#39173 moby/moby#41249
- 添加对发送服务运行和所需任务计数的支持 moby/moby#39231
- 服务:支持
--mount type=bind,bind-nonrecursive
moby/moby#38788 - 支持 Swarm 服务上的 ulimit。 莫比/莫比#41284 泊坞窗/cli#2712
- 修复了服务日志可能泄漏工作线程 moby/moby 上的 goroutine 的问题 #40426