Docker Engine 20.10 发行说明
本文档介绍了最新的更改、新增内容、已知问题和修复 适用于 Docker Engine 版本 20.10。
20.10.24
2023-04-04更新
错误修复和增强功能
- 修复了可能导致 Swarm 加密覆盖网络的许多问题
未能履行其保证,解决 CVE-2023-28841、CVE-2023-28840 和 CVE-2023-28842。
- 现在报告缺乏对加密覆盖网络的内核支持 作为错误。
- 加密的覆盖网络是热切建立的,而不是等待 要附加的多个节点。
- 加密的覆盖网络现在可以在 Red Hat Enterprise Linux 9 上使用
通过使用 kernel 模块。
xt_bpf
- Swarm 叠加网络的用户应查看 GHSA-vwm3-crmr-xfxw,以确保没有发生意外暴露。
- github.com/containerd/fifo 升级到 v1.1.0 以修复潜在的 panic moby/moby#45216。
- 修复已安装的 cli-plugins docker/cli 缺少 Bash 补全的问题 #4091。
20.10.23
2023-01-19此版本的 Docker Engine 包含 Docker Compose 的更新版本, Docker Buildx、containerd 和一些小错误修复和增强功能。
更新
- 将 Docker Compose 更新到 v2.15.1。
- 将 Docker Buildx 更新到 v0.10.0。
- 更新 containerd(包)到 v1.6.15。
containerd.io
- 更新包版本控制格式以允许分发版本更新 docker/docker-ce-packaging#822。
docker-compose-cli
- 将 Go 运行时更新到 1.18.10,
错误修复和增强功能
修复了在启用了 BuildKit 的情况下使用 moby/moby 时失败的问题 #44650。
docker build
--add-host=host.docker.internal:host-gateway
将 seccomp: block 套接字调用恢复到默认配置文件 moby/moby#44712。
AF_VSOCK
这一变化虽然从安全角度来看是有利的,但导致了变化 在某些用例中。因此,我们将其还原以确保 受影响用户的稳定性和兼容性。
但是,容器中的用户应该认识到,这 (特殊)地址族当前未在任何版本的 Linux 内核,并可能导致意外行为,例如容器 直接与主机 Hypervisor 通信。
AF_VSOCK
将来的版本将筛选 。需要允许容器的用户 要通过 unnamespaced 进行通信,需要关闭 seccomp 限制或设置自定义 secComp 配置文件。
AF_VSOCK
AF_VSOCK
20.10.22
2022-12-16此版本的 Docker Engine 包含 Docker Compose 的更新版本, Docker Scan、containerd 和一些小错误修复和增强功能。
更新
- 将 Docker Compose 更新到 v2.14.1。
- 将 Docker Scan 更新到 v0.23.0。
- 将 containerd(包)更新到 v1.6.13,
以包含 CVE-2022-23471 的修复程序。
containerd.io
- 将 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 或更高版本的主机上 moby/moby 期间出现的错误 #3862。
ssh: parse error in message type 27
docker build
- seccomp:在默认配置文件 moby/moby#44564 中阻止套接字调用。
AF_VSOCK
20.10.21
2022-10-25此版本的 Docker Engine 包含 Docker Compose 的更新版本, Docker Scan、containerd、为 Ubuntu 22.10 添加的软件包和一些小错误 修复和增强功能。
新增功能
- 提供适用于 Ubuntu 22.10 (Kinetic Kudu) 的软件包。
- 添加对 Docker Hub moby/moby 的支持 #44313。
allow-nondistributable-artifacts
更新
- 将 Docker Compose 更新到 v2.12.2。
- 将 Docker Scan 更新到 v0.21.0。
- 更新 containerd ( package) 至 v1.6.9。
containerd.io
- 更新捆绑的 BuildKit 版本以修复错误 moby/moby#44339。
output clipped, log limit 1MiB reached
错误修复和增强功能
- 删除 in bash completion docker/cli#3824 的实验性门。
--platform
- 修复了在 Windows moby/moby 上从旧版 CLI 将 Docker Engine 注册为服务时出现的崩溃#44326。
Invalid standard handle identifier
- 修复在 Windows moby/moby 上的 Cygwin 中运行 Git 命令的问题#44332。
20.10.20
2022-10-18此版本的 Docker Engine 包含针对 Git 漏洞的部分缓解措施
(CVE-2022-39253)、
并更新了对镜像引用的处理。image:tag@digest
Git 漏洞允许恶意构建的 Git 存储库在用作 build context,将任意文件系统路径复制到生成的容器/镜像中; 这可能发生在守护进程和 API 客户端中,具体取决于版本和 使用中的工具。
此版本和守护程序 API 的其他使用者中提供的缓解措施
是部分的,并且仅保护构建 Git URL 上下文的用户(例如 )。
由于该漏洞仍可能被手动运行交互的 Git 命令所利用
with 和 check out 子模块,用户应立即升级到
Git 来防范此漏洞。更多详细信息可从 GitHub 获取
博客(“Git 安全漏洞已公布”)。git+protocol://
更新
- 将 Docker Compose 更新到 v2.12.0。
- 更新了引用的处理。使用
的 (“pull by digest”),镜像分辨率通过
不使用 content-addressable 摘要和 and。而
这是意料之中的,这可能会导致混淆行为,并且可能会
通过社会工程手段被利用以运行已经存在的镜像
在本地镜像存储中。Docker 现在检查摘要是否与存储库匹配
name 用于拉取镜像,否则会产生错误。
image:tag@digest
image:tag@digest
image
tag
- 更新了引用的处理。请参阅 “守护进程” 部分
有关详细信息。
image:tag@digest
错误修复和增强功能
- 添加了针对 CVE-2022-39253 的缓解措施, 当使用带有 Git URL 作为构建上下文的经典构建器时。
- 为经典 Builder 添加了缓解措施,并将 BuildKit 更新到 v0.8.3-31-gc0149372。 CVE-2022-39253 中。
20.10.19
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。
错误修复和增强功能
- 修复了一个可能导致在 or moby/moby#44122 期间出现紧急情况的问题。
docker builder prune
docker system prune
- 修复了 using 会删除
如果守护程序正在使用 “Live Restore” 运行并重新启动 MOBY/MOBY#44238,则仍在使用中。
docker volume prune
20.10.18
2022-09-09此版本的 Docker Engine 修复了一个低严重性安全问题
修复了一些小错误,并更新了 Docker Compose、Docker Buildx 和 .containerd
runc
更新
- 将 Docker Buildx 更新到 v0.9.1。
- 将 Docker Compose 更新到 v2.10.2。
- 将 containerd(包)更新到 v1.6.8。
containerd.io
- 更新 runc 版本至 v1.1.4。
- 将 Go 运行时更新到 1.18.6, 其中包含针对 CVE-2022-27664 和 CVE-2022-32190 的修复程序。
错误修复和增强功能
- 为 Docker Compose 添加 Bash 补全 docker/cli#3752。
- 修复了在构建 moby/moby#43876 期间不保留 file-capabilities 的问题。
- 修复了一个可能导致并发映射读取和 map write moby/moby#44067 的 moby。
- 修复与补充组权限相关的安全漏洞,该漏洞 可能允许容器进程绕过 容器漏洞 CVE-2022-36109、GHSA-rc4r-wh2q-q6c4。
- seccomp:在默认策略 moby/moby#43991 中添加对 Landlock 系统调用的支持。
- seccomp:更新默认策略以支持内核 5.12 - 5.16 moby/moby#43991 中引入的新系统调用。
- 修复了以下问题:镜像清单的缓存查找失败,从而导致 在到镜像注册表 moby/moby#44109 的冗余往返中。
- 修复了进程和运行状况检查未终止的问题
当他们超时 Moby/Moby#44018 时。
exec
20.10.17
2022-06-06此版本的 Docker Engine 附带了 Docker Compose 和 、 组件的更新版本,以及一些小错误修复。containerd
runc
更新
- 将 Docker Compose 更新到 v2.6.0。
- 将 containerd(包)更新到 v1.6.6,
其中包含 CVE-2022-31030 的修复程序
containerd.io
- 将 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 端口与主机模式下 overlay moby/moby 的已发布端口的冲突 #43644。
- 确保性能调整始终应用于 libnetwork 沙箱 moby/moby#43683。
20.10.16
2022-05-12此版本的 Docker Engine 修复了 Docker CLI 版本中的回归
macOS,修复了使用 containerd 1.5 及更高版本时的问题,
并更新了 Go 运行时以包含 CVE-2022-29526 的修复程序。docker stats
更新
- 更新 golang.org/x/sys 依赖项,其中包含 CVE-2022-29526 的修复程序。
- 更新了构建时依赖项,其中包含 CVE-2022-29526 的修复程序。
golang.org/x/sys
- 将 Go 运行时更新到 1.17.10, 其中包含 CVE-2022-29526 的修复程序。
错误修复和增强功能
- 修复了 20.10.15 中引入的 macOS 二进制文件中的回归,该回归 导致 Docker/CLI 出现紧急情况 #43426。
- 修复了使用
containerd 1.5.0 或更高版本 moby/moby#43567。
docker stats
- 对 CLI 插件使用了“弱”依赖项,以防止
当用户从 执行离线安装时出现“Conflicting requests” 错误
下载 RPM 包 docker/docker-ce-packaging#659。
docker scan
20.10.15
2022-05-05此版本的 Docker Engine 附带了 、 、 和 组件的更新版本,以及一些小错误修复。compose
buildx
containerd
runc
更新
- 将 Docker Compose 更新到 v2.5.0。
- 将 Docker Buildx 更新到 v0.8.2。
- 将 Go 运行时更新到 1.17.9。
- 更新 containerd(包)至 v1.6.4。
containerd.io
- 更新 runc 版本至 v1.1.1。
错误修复和增强功能
- 对 stateCounter 使用 RWMutex 以防止潜在的锁定拥塞 moby/moby#43426。
- 防止守护程序无法在 中找到可用 IP 范围的问题 部分条件 MOBY/MOBY#43360
- 添加适用于 CentOS 9 stream 和 Fedora 36 的软件包。
已知问题
- 我们在 20.10.15 版本中发现了 macOS CLI 二进制文件的问题。此问题已在 20.10.16 版本中得到解决。
20.10.14
2022-03-23此版本的 Docker Engine 更新了
容器解决 CVE-2022-24769、
还包括新版本的运行时来解决相同的问题
问题。containerd.io
更新
20.10.13
2022-03-10此版本的 Docker Engine 包含一些 bug 修复和打包更改,
对 and 命令的更新,是
Go 运行时以及运行时的新版本。
除了此版本,我们现在还提供
Docker Compose V2,可以使用(可选)包进行安装。docker scan
docker buildx
containerd.io
.deb
.rpm
docker-compose-plugin
新增功能
- 为 Docker Compose V2 提供和包。Docker Compose v2.3.3 现在可以使用软件包安装在 Linux 上,这些软件包
在 Docker CLI 上提供了子命令。The Docker Compose
插件也可以独立安装和运行,以用作直接替代品
(Docker Compose V1) docker/docker-ce-packaging#638 的 docker/docker-ce-packaging。
该软件包也可以在旧版本的 Docker 上使用
支持 CLI 插件的 CLI(Docker CLI 18.09 及更高版本)。
.deb
.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。
- 更新到 v0.8.0。
docker buildx
- 将 () 更新到 v0.17.0。
docker scan
docker-scan-plugin
- 将 containerd(包)更新到 v1.5.10。
containerd.io
- 将捆绑的 runc 版本更新到 v1.0.3。
- 将 Golang 运行时更新到 Go 1.16.15。
- 更新 fluentd 日志驱动程序以防止潜在的守护程序崩溃,并防止
容器在使用 和
远程服务器无法访问 moby/moby#43147。
fluentd-async-connect=true
错误修复和增强功能
- 修复更新容器状态 moby/moby#43166 时的争用条件。
- 更新 etcd 依赖项以防止守护进程错误地持有文件锁 moby/moby#43259
- 修复了在配置默认 sysctl moby/moby#43084 时对用户命名空间的检测。
net.ipv4.ping_group_range
- 如果在镜像期间发生连接失败,请重试下载镜像清单 拉取 moby/moby#43333。
- 命令行参考和 API 文档中的各种修复。
- 在将 “local” 日志记录驱动程序与生成 大量日志消息 moby/moby#43165。
20.10.12
2021-12-13
此版本的 Docker Engine 仅包含打包方面的更改,并提供
对 and 命令的更新。v0.11.0 之前的版本无法检测到 Log4j 2 CVE-2021-44228。
我们将在此版本中提供 的更新版本来帮助您
扫描您的镜像以查找此漏洞。docker scan
docker buildx
docker scan
docker scan
注意
Linux 上的命令目前仅在 x86 平台上受支持。 我们尚未为 Linux 上的其他硬件体系结构提供软件包。
docker scan
该功能作为单独的软件包提供,具体取决于您的
升级或安装方法,“docker scan”可能不会自动更新为
最新版本。使用以下说明更新到最新版本
版本。您还可以使用这些说明来安装或升级软件包,而无需升级 Docker Engine:docker scan
docker scan
docker scan
在基于发行版(如 Ubuntu 和 Debian)上:.deb
$ 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
包装
20.10.11
2021-11-17
重要
由于 Go 1.16 中 net/http 的变化,通过环境变量配置的 HTTP 代理不再用于 TLS () 连接。请确保还设置了一个环境变量来处理对 URL 的请求。请参阅 配置守护程序以使用代理 了解如何配置 Docker 守护程序以使用代理服务器。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
分配
- 处理不明确的 OCI 清单解析以缓解 CVE-2021-41190 / GHSA-mc8v-mgrf-8f4m。 有关详细信息,请参阅 GHSA-xmmx-7jpf-fx42。
窗户
- 修复panic.log文件设置了只读属性 moby/moby#42987。
包装
- 将 containerd 更新到 v1.4.12 以缓解 CVE-2021-41190。
- 将 Golang 运行时更新到 Go 1.16.10。
20.10.10
2021-10-25
重要
由于 Go 1.16 中 net/http 的变化,通过环境变量配置的 HTTP 代理不再用于 TLS () 连接。请确保还设置了一个环境变量来处理对 URL 的请求。请参阅 HTTP/HTTPS 代理部分,了解如何配置 Docker 守护程序以使用代理服务器。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
建筑工人
- 修复平台匹配逻辑,以修复在
使用 BuildKit moby/moby 时 Arm 机器上的本地镜像缓存 #42954
docker build
运行
- 在默认 seccomp 策略中添加对 syscall 的支持,以支持运行
基于最新版本的 Fedora 和 Ubuntu 的容器。白鲸/白鲸/#42836。
clone3
- Windows:更新 hcsshim 库以修复容器中稀疏文件处理的缺陷 层,该图层由 Windows moby/moby#42944 中的最近更改公开。
- 修复一些可能永远挂起 moby/moby#42956 的情况。
docker stop
群
- 修复了更新服务在失败时未回滚的问题 moby/moby#42875。
包装
- 添加适用于 Ubuntu 21.10 “Impish Indri” 和 Fedora 35 的软件包。
- 更新到 v0.9.0
docker scan
- 将 Golang 运行时更新到 Go 1.16.9。
20.10.9
2021-10-04
此版本是一个安全版本,在 CLI 运行时中修复了安全问题,如 以及 containerd.io 包的更新版本。
重要
由于 Go 1.16 中 net/http 的变化,通过环境变量配置的 HTTP 代理不再用于 TLS () 连接。请确保还设置了一个环境变量来处理对 URL 的请求。请参阅 HTTP/HTTPS 代理部分,了解如何配置 Docker 守护程序以使用代理服务器。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
客户
- CVE-2021-41092漏洞确保默认身份验证配置已设置地址字段,以防止凭据被 发送到默认注册表。
运行
- CVE-2021-41089漏洞在 chroot 中创建父目录,以防止
通过更改主机文件系统中现有文件的权限来构建的容器。
docker cp
- CVE-2021-41091漏洞锁定文件权限以防止非特权用户发现和
在 中执行程序。
/var/lib/docker
包装
已知问题
此版本的 static 包附带的二进制不是 静态链接,并且不会在使用 alpine 作为基础的 Docker 镜像中运行 镜像。用户可以安装该软件包,也可以下载以前的 版本作为解决方法。请参阅 containerd 票据 有关此问题的更多详细信息,请访问:containerd/containerd#5824。
ctr
libc6-compat
ctr
- 将 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/HTTPS 代理部分,了解如何配置 Docker 守护程序以使用代理服务器。
$HTTP_PROXY
https://
$HTTPS_PROXY
https://
折旧
- 弃用对加密 TLS 私有密钥的支持。旧版 PEM 加密为 RFC 1423 中指定的 RFC 1423 在设计上是不安全的。因为它不进行身份验证 密文,它容易受到 Padding Oracle 攻击,这些攻击可以让 攻击者恢复了明文。现在支持加密的 TLS 私钥 标记为已弃用,并将在即将发布的版本中删除。docker/cli 命令 #3219
- 弃用 Kubernetes 堆栈支持。在 Kubernetes 上弃用 Compose 后,
在 Docker CLI 中的 and 命令中支持 Kubernetes
现在标记为已弃用,并将在即将发布的版本 docker/cli#3174 中删除。
stack
context
客户
- 修复 Windows docker/cli 上的错误 #3132。
Invalid standard handle identifier
无根
- 避免错误
SELinux 托管 moby/moby#42462。
can't open lock file /run/xtables.lock: Permission denied
- 在使用 SELinux 运行时禁用 overlay2,以防止出现权限被拒绝错误 moby/moby#42462。
- 修复 openSUSE Tumbleweed moby/moby 的错误 #42462。
x509: certificate signed by unknown authority
运行
- 使用选项提取单个 arch 镜像时打印警告
这与指定的架构 moby/moby#42633 不匹配。
--platform
- 修复以下情况下的错误警告
使用 cgroups v2 moby/moby#42479 运行。
Your kernel does not support swap memory limit
- Windows:修复了在返回错误 moby/moby#42613 时容器未停止的情况
HcsShutdownComputeSystem
ERROR_PROC_NOT_FOUND
群
- 修复了由于 节点无法清理其旧的负载均衡器 IP moby/moby#42538
- 修复日志代理中的死锁(“dispatcher 已停止”)moby/moby#42537
包装
已知问题
此版本的 static 包附带的二进制不是 静态链接,并且不会在使用 alpine 作为基础的 Docker 镜像中运行 镜像。用户可以安装该软件包,也可以下载以前的 版本作为解决方法。请参阅 containerd 票据 有关此问题的更多详细信息,请访问:containerd/containerd#5824。
ctr
libc6-compat
ctr
- 删除 Ubuntu 16.04 “Xenial” 和 Fedora 32 的打包,因为它们已停产 docker/docker-ce-packaging#560
- 将 Golang 运行时更新到 Go 1.16.6
- 将 rpm 和 deb 包 docker/docker-ce-packaging#562 的捆绑 buildx 版本更新到 v0.6.1
- 将静态二进制文件以及 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
客户
- 禁止显示已弃用的 cgroups 的警告 docker/cli#3099。
- 阻止向 Linux 和 macOS 上的容器发送信号。Go 运行时
(从 Go 1.14 开始)在内部使用信号作为中断
支持抢占式 syscall。在附加了 Docker CLI 的情况下
发送到容器时,这些中断被转发到容器。此修复
更改 Docker CLI 以忽略信号 docker/cli#3107、moby/moby#42421。
SIGURG
SIGURG
SIGURG
建筑工人
- 将 BuildKit 更新到版本 v0.8.3-3-g244e8cde moby/moby#42448:
- 转换 executor 中 exec 挂载的相对挂载点以解决此问题 Runc v1.0.0-rc94 及更高版本中的重大更改。moby/buildkit#2137 的
- 添加对镜像推送 5xx 错误重试。moby/buildkit#2043 中。
- 修复了在重命名使用
带有通配符的命令。请注意,此更改会使
使用通配符的 copy 命令的现有构建缓存。moby/buildkit#2018 中。
COPY
- 修复在使用 mounts moby/buildkit 时 build-cache 不失效的问题#2076。
- 修复在使用旧版 Schema 1 镜像 moby/moby 时未缓存镜像时构建失败的问题 #42382。
FROM
伐木
- 更新 hcsshim SDK,使 Windows 上的守护程序日志不那么冗长 moby/moby#42292。
无根
- 修复了在具有 user-namespaces 启用了 moby/moby#42352。
联网
- 更新 libnetwork 以修复具有内核引导的环境上的发布端口
参数,并修复导致内部 DNS 查找的死锁
使 moby/moby#42413 失败。
ipv6.disable=1
贡献
- 更新 rootlesskit 到 v0.14.2 以修复启动 userland 代理时超时的问题
使用端口驱动程序 moby/moby#42294。
slirp4netns
- 修复在无根 docker 上运行 docker-in-docker 时出现的 “Device or resource busy” 错误 守护进程 Moby/Moby#42342。
包装
- 将 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 插件包 () 更新到 v0.8 docker/docker-ce-packaging#545。
docker-scan-plugin
20.10.6
2021-04-12
客户
- Apple Silicon (darwin/arm64) 对 Docker CLI 的支持 docker/cli #3042
- config:回退到 v1.7.0 之前的配置文件时打印弃用警告。在未来的版本中将删除对此文件的支持 docker/cli#3000
~/.dockercfg
建筑工人
- 修复经典构建器静默忽略不支持的 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/cli#2987 的
docker start --attach
Unsupported signal: <nil>. Discarding
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。要清理旧状态,请运行 moby/moby#42065
builder prune
- 修复并行拉取同步回归 moby/moby#42049
- 确保 libnetwork state 文件不会泄漏 moby/moby#41972
客户
- 修复 if no config file is exist 的 panic docker/cli#2959
docker login
- 修复 docker/cli #2958
WARNING: Error loading config file: .dockercfg: $HOME is not defined
运行
- docker 信息:静默无法处理的警告 moby/moby#41958
- 避免为 XGlobalHeader moby/moby 创建父目录#42017
- 创建缺失目录时使用 0755 权限 moby/moby#42017
- 当镜像配置 moby/moby 中没有平台匹配时回退到清单列表#42045 moby/moby#41873
- 修复配置了自定义默认运行时的设置上的 daemon panic moby/moby#41974
- 修复守护进程配置为空时 panic moby/moby 的问题#41976
- 修复使用无效设备 cgroup 规则 moby/moby 启动容器时守护进程 panic 的问题#42001
- 修复用户名和UID匹配moby/moby时的userns-remap选项#42013
- 静态:更新 runc 二进制文件到 v1.0.0-rc93 moby/moby#42014
记录
- 即使没有设置 moby/moby 也遵循 config#42046
labels-regex
labels
- 正确处理长日志消息,防止非阻塞模式下的 awslogs 拆分大于 16kB 的事件 mobymoby#41975
无根
- 通过将 systemd KillMode 设置为 mixed moby/moby 来防止服务在停止时挂起#41956
- dockerd-rootless.sh:添加拼写错误守卫 MOBY/MOBY#42070
- 将 rootlesskit 更新到 v0.13.1 以修复 IPv6 地址 moby/moby 的处理 #42025
- 允许在 userns moby/moby 内 mknodding FIFO#41957
安全
- 配置文件:seccomp:更新到 Linux 5.11 syscall list moby/moby#41971
群
- 修复重启 moby/moby 时 heartbeat 不持久的问题#42060
- 修复可能卡顿的任务 moby/moby#42060
- 修复 only or is provided 时出现 docker/cli 的问题 #2963
--update-order
--rollback-order
--update-order
--rollback-order
- 修复在某些情况下返回非零退出代码的问题 docker/cli#2964
docker service rollback
- 修复 docker/cli 上进度条方向不一致的问题#2964
docker service rollback
20.10.3
2021-02-01
安全
- CVE-2021-21285漏洞防止无效镜像使 docker 守护进程崩溃
- CVE-2021-21284漏洞锁定文件权限以防止重新映射的 root 访问 docker 状态
- 确保在使用 BuildKit 构建时应用 AppArmor 和 SELinux 配置文件
客户
- 在导入上下文之前检查上下文,以降低提取的文件转义上下文存储的风险
- Windows:阻止从当前目录 docker/cli 执行某些二进制文件 #2950
20.10.2
2021-01-04
运行
- 修复在使用 restart 策略恢复容器时守护进程启动挂起,但始终无法启动 moby/moby 的问题#41729
- overlay2:修复了当 data-root 为 24 字节长时阻止构建或运行容器的 off-by-one 错误 moby/moby#41830
- systemd:关闭 moby/moby 时发送#41832
sd_notify STOPPING=1
联网
- 修复 IPv6 端口转发 moby/moby#41805 moby/libnetwork#2604
群
- 修复 moby/moby 和服务模式的过滤问题 #41806
replicated-job
global-job
包装
- buildX 更新到 v0.5.1 docker/docker-ce-packaging#516
20.10.1
2020-12-14
建筑工人
- buildkit:更新到 v0.8.1,修复了各种 bugs,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
弃用 / 移除
有关所有已弃用功能的概述,请参阅 已弃用的引擎功能页面。
- 从不支持 pull-by-digest docker/cli 的不合规注册表发送 -ing 时出现警告和弃用通知 #2872
docker pull
- 针对未经身份验证的 tcp 访问 moby/moby 的更严厉警告和弃用通知 #41285
- 废弃 KernelMemory () moby/moby#41254 docker/cli#2652
docker run --kernel-memory
- 废弃存储驱动 docker/cli#1484
aufs
- 弃用具有外部 k/v 存储的主机发现和覆盖网络 moby/moby#40614 moby/moby#40510
- 废弃 Dockerfile 旧版 'ENV name value' 语法,改用 docker/cli#2743
ENV name=value
- 删除 API v1.41 及更高版本中已弃用的 “filter” 参数 moby/moby#40491
- 在推送 moby/moby 时禁用分发清单 v2 架构 1#41295
- 移除 hack MalformedHostHeaderOverride 破坏旧的 docker 客户端 (<= 1.12),在这种情况下,设置 moby/moby#39076
DOCKER_API_VERSION
- 移除 docker engine 子命令 docker/cli#2207
- 从 “dab” 文件中删除实验性的 “deploy” docker/cli #2216
- 移除已弃用的 docker/cli 并标记 docker/cli#2338
docker search --automated
--stars
- 不再允许在引擎标签中使用保留命名空间 docker/cli#2326
应用程序接口
- 将 API 版本更新到 v1.41
- 不需要对指标进行“实验性”API moby/moby#40427
GET /events
现在在修剪资源完成后返回事件 moby/moby#41259prune
- 为 、 、 和 返回 Prune 事件,并具有一个属性,指示回收的空间量(以字节为单位)
container
network
volume
image
builder
reclaimed
- 为 、 、 和 返回 Prune 事件,并具有一个属性,指示回收的空间量(以字节为单位)
- 添加 stats 选项以不启动 stats moby/moby#40478
one-shot
- 将操作系统版本信息添加到系统信息的 API () moby/moby#38349
/info
- 将 DefaultAddressPools 添加到 docker info moby/moby #40714
- 在 moby/moby 服务上添加对 PidsLimit 的 API 支持#39882
建筑工人
- buildkit,dockerfile:支持选项,而无需指定实验性 dockerfile 指令。moby/buildkit#1717
RUN --mount
#syntax
- dockerfile: command 现在支持在同一行定义多个构建参数,类似于 moby/buildkit#1692
ARG
ENV
- dockerfile: 标志现在允许参数扩展 moby/buildkit#1473
--chown
ADD
- buildkit:获取授权令牌已移至客户端(如果客户端支持)。密码不再泄漏到构建守护程序中,用户可以从构建输出中看到何时访问凭据或令牌。moby/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: secrets: 允许使用 env moby/moby 提供 secret#41234 docker/cli#2656 moby/buildkit#1534
- 支持作为将密钥值存储到文件的替代方法。
--secret id=foo,env=MY_ENV
--secret id=GIT_AUTH_TOKEN
如果 env 存在,则将加载 env 但该文件不存在。
- 支持作为将密钥值存储到文件的替代方法。
- buildkit:支持镜像回退、不安全的 TLS 和自定义 TLS 配置 moby/moby#40814
- buildkit: remotecache: 行走时只访问每个项目一次 结果 moby/moby#41234 moby/buildkit#1577
- 提高较大图形的性能和 CPU 使用率
- buildkit: 本地镜像平台不匹配时检查 remote#40629
- buildkit:镜像导出:创建新图层 blob 时使用正确的媒体类型 moby/moby#41234 moby/buildkit#1541
- buildkit: progressui: 修复日志时间格式化 moby/moby#41234 docker/cli#2656 moby/buildkit#1549
- buildkit:缓解并行推送 moby/moby 上的 containerd 问题#41234 moby/buildkit#1548
- buildkit: 内联缓存:修复重复 blob moby/moby 的处理#41234 moby/buildkit#1568
- 修复 https://github.com/moby/buildkit/issues/1388 cache-from 工作不可靠
- 修复了从缓存层构建的镜像缺少数据 https://github.com/moby/moby/issues/41219
- 允许对远程上下文 URL 进行 ssh:// moby/moby#40179
- 构建器:删除旧版的会话处理(是实验性的)moby/moby#39983
客户
- 为 CLI docker/cli 添加 swarm 作业支持 #2262
- 添加到 docker push docker/cli#2220
-a/--all-tags
- 新增对 Kubernetes 用户名/密码身份验证 docker/cli 的支持#2308
- 添加到 docker/cli 命令 #1498
--pull=missing|always|never
run
create
- 添加 flag to 用于解析文件中的环境变量 docker/cli#2602
--env-file
docker exec
- 添加选项 docker/cli 的简写 #2646
-n
--tail
- 为服务检查 “pretty” 格式 docker/cli 添加 log-driver 和选项 #1950
- docker run:使用 docker/cli 指定 cgroup 命名空间模式 #2024
--cgroupns
docker manifest rm
从本地存储中删除 manifest list draft 的命令 docker/cli#2449- 将 “context” 添加到 “docker version” 和 “docker info” docker/cli #2500
- 将平台标志传播到容器创建 API docker/cli#2551
- 该标志现在有一个占位符来打印容器的状态,而无需有关正常运行时间和运行状况检查的其他详细信息 docker/cli#2000
docker ps --format
.State
- 新增对 docker-compose schema v3.9 docker/cli 的支持 #2073
- 新增对 docker push docker/cli 的支持 #2197
--quiet
- 如果启用了 BuildKit,则隐藏 BuildKit 不支持的标志 docker/cli#2123
- 更新标志描述以阐明该选项仅删除匿名(未命名)卷 docker/cli#2289
docker rm -v
- 改进 docker 服务 docker/cli 的任务打印 #2341
- docker info:按字母顺序列出 CLI 插件 docker/cli#2236
- 修复 、 和 flags on 的处理顺序,以允许替换现有值 docker/cli#2668
--label-add/--label-rm
--container-label-add/--container-label-rm
--env-add/--env-rm
docker service update
- 修复在一个或多个容器不存在时返回非零退出代码的问题 docker/cli#2678
docker rm --force
- 使用 docker/cli 代替 docker/cli 改进内存统计信息显示 #2415
total_inactive_file
cache
- 缓解别名过多的 YAML 文件 docker/cli#2117
- 允许在设置仅源字段 docker/cli 的 config 或 secret 时使用高级语法 #2243
- 修复读取包含 和 auth 的配置文件,即使 docker/cli 为空 #2122
username
password
auth
- docker cp:在统计目标 docker/cli 失败时阻止 NPE docker/cli#2221
- config:保留对 configfile docker/cli 的所有权和权限#2228
伐木
- 支持使用所有日志记录驱动程序进行读取(尽力而为) moby/moby#40543
docker logs
- 添加日志选项以使用启用了索引确认的 Splunk HEC,moby/moby#39987
splunk-index-acknowledgment
- 将部分元数据添加到 journald 日志 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:当 moby/moby 可用时,默认使用 “systemd” cgroup 驱动程序#40846
- 新的存储驱动程序:fuse-overlayfs moby/moby#40483
- 将 containerd 二进制文件更新到 v1.4.3 moby/moby#41732
docker push
现在默认为 tag 而不是所有标签 moby/moby#40302latest
- 添加了在拉取镜像时更改连接丢失期间重新连接尝试次数的功能,方法是将 max-download-attempts 添加到配置文件 moby/moby#39949
- 使用现在的默认运行时 moby/moby#41182 添加了对 containerd v2 shim 的支持
io.containerd.runc.v2
- cgroup v1:将默认运行时更改为 io.containerd.runc.v2。需要 containerd v1.3.0 或更高版本。建议使用 v1.3.5 或更高版本 moby/moby#41210
- 在容器自己的 cgroup 命名空间中启动容器 moby/moby#38377
- 为 CIFS 卷 moby/moby 启用 DNS 查找 #39250
- 使用 MemAvailable 而不是 MemFree 来估计实际可用内存 moby/moby#39481
- 现在,当容器以特权模式 moby/moby#40291 启动时,将遵循 in 的标志
--device
docker run
- 强制执行保留的内部标签 moby/moby#40394
- 将最小内存限制提高到 6M,以解决容器启动期间运行时使用更高的内存 moby/moby#41168
- 供应商 runc v1.0.0-rc92 moby/moby#41344 moby/moby#41317
- 信息:添加有关缺少 BLKIO cgroup 支持的警告 MOBY/MOBY#41083
- 接受容器上的 platform spec create moby/moby#40725
- 修复使用空格 moby/moby 查找用户名和组名的处理 #41377
联网
- 在 Linux 上的 dockerd 中支持 host.docker.internal,moby/moby#40007
- 在 /etc/hosts moby/moby 中包含链接容器的 IPv6 地址 #39837
--ip6tables
启用 IPv6 iptables 规则(仅在实验性情况下) moby/moby#41622- 如果 hostname != 容器名称为 moby/moby,则为 hostname 添加别名 #39204
- 更好的 DNS 服务器选择(带 systemd) moby/moby#41022
- 将 docker 接口添加到 firewalld docker 区域 moby/moby#41189 moby/libnetwork#2548
- 修复 CentOS8 docker/for-linux 的 DNS 问题 #957
- 修复 RHEL 8 上 Firewalld 运行时的端口转发问题,并使用 FirewallBackend=nftables moby/libnetwork #2496
- 修复了报告“在 CreateEndpoint 期间无法获取网络”moby/moby 的问题#41189 moby/libnetwork#2554
- 日志错误而不是禁用 IPv6 路由器通告失败 moby/moby#41189 moby/libnetwork#2563
- 在某些情况下不再忽略选项 moby/moby#40711
--default-address-pool
- 产生无效地址池 moby/moby 的错误#40808 moby/libnetwork#2538
- 修复 IPTableEnable=false moby/moby 时不创建链的问题#40808 moby/libnetwork#2471
DOCKER-USER
- 修复在 systemd 环境中启动时出现 panic 的问题 moby/moby#40808 moby/libnetwork#2544
- 修复容器无法通过 macvlan 内部网络 moby/moby 通信的问题 #40596 moby/libnetwork#2407
- 修复 InhibitIPv4 nil panic moby/moby#40596
- 修复 Windows 叠加网络删除中的 VFP 泄漏 moby/moby#40596 moby/libnetwork#2524
包装
- docker.service: 在单元文件 moby/moby 的 After= 中添加 multi-user.target#41297
- docker.service:允许套接字激活 moby/moby#37470
- seccomp:移除 libseccomp moby/moby 上 dockerd 中的依赖性问题#41395
无根
- 无根:从实验性 MOBY/MOBY#40759 中毕业
- 添加 dockerd-rootless-setuptool.sh moby/moby#40950
- 支持 moby/moby#40486
--exec-opt native.cgroupdriver=systemd
安全
- 修复 CVE-2019-14271 在 Glibc moby/moby 下的 chroot 中加载基于 nsswitch 的配置的问题 #39612
- seccomp: 白名单 。 仍然需要进行时间调整 moby/moby#40929
clock_adjtime
CAP_SYS_TIME
- seccomp:将 openat2 和 faccessat2 添加到默认的 seccomp 配置文件 moby/moby#41353 中
- seccomp:在默认 seccomp 配置文件 moby/moby 中允许 'rseq' syscall #41158
- seccomp: 允许 syscall membarrier moby/moby#40731
- seccomp: 将 IO-uring 相关系统调用 moby/moby 列入白名单 #39415
- 添加默认 sysctl 参数以允许 ping 套接字和没有功能的特权端口 moby/moby#41030
- 修复克隆 syscall moby/moby 的 seccomp 配置文件#39308
群
- 添加对 swarm 作业 moby/moby 的支持#40307
- 添加对 stack/service 命令的功能支持 docker/cli#2687 docker/cli#2709 moby/moby#39173 moby/moby#41249
- 新增支持发送 down 服务 Running 和 Desired task 计数 moby/moby#39231
- 服务: Support Moby/Moby#38788
--mount type=bind,bind-nonrecursive
- 支持 Swarm 服务的 ulimit。MOBY/MOBY#41284 docker/cli#2712
- 修复了服务日志可能泄漏 worker moby/moby 上的 goroutines 的问题#40426