Docker Engine 20.10 发行说明

本文档描述了 Docker Engine 20.10 版本的最新更改、新增功能、已知问题及修复内容。

20.10.24

2023-04-04

更新

  • 将 Go 运行时更新至 1.19.7
  • 将 Docker Buildx 更新到 v0.10.4
  • 将 containerd 更新至 v1.6.20
  • 将 runc 更新至 v1.1.5

错误修复和功能增强

  • 修复了若干可能导致 Swarm 加密覆盖网络无法维持其安全保证的问题,涉及 CVE-2023-28841CVE-2023-28840 以及 CVE-2023-28842
    • 现在,内核不支持加密的 overlay 网络会报告为错误。
    • 加密的 overlay 网络会立即设置,而不是等待多个节点连接。
    • 通过使用 xt_bpf 内核模块,加密的 overlay 网络现在可以在 Red Hat Enterprise Linux 9 上使用。
    • Swarm overlay 网络的用户应查阅 GHSA-vwm3-crmr-xfxw 以确保没有发生意外暴露。
  • 将 github.com/containerd/fifo 升级到 v1.1.0 以修复潜在的 panic moby/moby#45216
  • 修复已安装 cli-plugins 的 Bash 补全缺失问题 docker/cli#4091

20.10.23

2023-01-19

此版本的 Docker Engine 包含更新版本的 Docker Compose、Docker Buildx、containerd,以及一些小的错误修复和增强功能。

更新

错误修复和功能增强

  • 修复在启用 BuildKit 时使用 --add-host=host.docker.internal:host-gateway docker build 会失败的问题 moby/moby#44650

  • 撤销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,以及一些小的错误修复和增强功能。

更新

错误修复和功能增强

  • 在尝试拉取不受支持的镜像格式或 OCI 艺术品时,改进错误信息 moby/moby#44413, moby/moby#44569
  • 修复在为容器选择随机端口时忽略主机临时端口范围的问题 moby/moby#44476
  • 在使用 OpenSSH 8.9 或更高版本的主机上,修复 ssh: parse error in message type 27 个错误,共 docker buildmoby/moby#3862
  • seccomp: 在默认配置文件中阻止对 AF_VSOCK 的 socket 调用 moby/moby#44564

20.10.21

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 扫描至 v0.21.0
  • 更新 containerd(containerd.io 个包)至 v1.6.9
  • 将捆绑的 BuildKit 版本更新以修复 output clipped, log limit 1MiB reached 错误 moby/moby#44339

错误修复和功能增强

  • 移除 bash 补全中针对 --platform 的实验性开关 docker/cli#3824
  • 修复在 Windows 上使用旧版 CLI 将 Docker 引擎注册为服务时出现的 Invalid standard handle identifier panic 问题 moby/moby#44326
  • 在 Windows 上的 Cygwin 中修复运行 Git 命令 moby/moby#44332

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(“按摘要拉取”)拉取镜像时,镜像解析通过内容可寻址的摘要进行,而imagetag不被使用。虽然这是预期的行为,但可能导致令人困惑的行为,并且可能通过社会工程手段被利用,从而运行本地镜像存储中已存在的镜像。Docker 现在会检查摘要是否与用于拉取镜像的仓库名称匹配,否则将产生错误。
  • 更新了对image:tag@digest引用的处理。详情请参阅上文的“守护程序”部分。

错误修复和功能增强

  • 为使用 Git URL 作为构建上下文的经典构建器添加了针对 CVE-2022-39253 的缓解措施。CVE-2022-39253
  • 为经典 Builder 添加了缓解措施,并将 BuildKit 更新到 v0.8.3-31-gc0149372, 以应对 CVE-2022-39253

20.10.19

2022-10-14

此版本的 Docker Engine 包含一些错误修复,并更新了 Docker Compose 的版本。

更新

错误修复和功能增强

  • 修复在 docker builder prunedocker system prune moby/moby#44122 期间可能导致 panic 的问题。
  • 修复一个错误:在守护进程使用“live restore”并重新启动的情况下,使用 docker volume prune 会移除仍在使用的卷 moby/moby#44238

20.10.18

2022-09-09

此版本的 Docker Engine 包含对一个低严重性安全问题的修复、一些次要的错误修复,以及更新版本的 Docker Compose、Docker Buildx、containerdrunc

更新

错误修复和功能增强

  • 为 Docker Compose 添加 Bash 自动补全功能 docker/cli#3752
  • 修复在构建过程中文件能力未被保留的问题 moby/moby#43876
  • 修复可能导致由并发映射读取和映射写入引起的 panic 的问题 moby/moby#44067
  • 修复与辅助组权限相关的安全漏洞,该漏洞可能允许容器进程绕过容器内的主组限制 CVE-2022-36109, GHSA-rc4r-wh2q-q6c4
  • seccomp: 在默认策略中添加对 Landlock 系统调用的支持 moby/moby#43991
  • seccomp: 更新默认策略以支持内核 5.12 - 5.16 引入的新系统调用 moby/moby#43991
  • 修复镜像清单缓存查找失败的问题,导致对镜像仓库的冗余往返请求 moby/moby#44109
  • 修复一个在超时情况下,exec 进程和健康检查未被终止的问题 moby/moby#44018

20.10.17

2022-06-06

此版本的 Docker Engine 包含更新的 Docker Compose 版本以及 containerdrunc 组件的更新版本,并且还包含一些小的错误修复。

更新

错误修复和功能增强

  • 从 zsh 完成脚本中移除 docker 命令中的星号 docker/cli#3648
  • 修复在主机模式下使用 overlay 时发布的端口与 Windows 端口冲突的问题 moby/moby#43644
  • 确保始终对libnetwork沙箱应用性能调优 moby/moby#43683

20.10.16

2022-05-12

此版本的 Docker Engine 修复了 macOS 上 Docker CLI 构建的回归问题,修复了使用 containerd 1.5 及更高版本时出现的 docker stats 问题,并更新了 Go 运行时以包含对 CVE-2022-29526 的修复。

更新

错误修复和功能增强

  • 修复了在 macOS 的Binaries中引入的回归问题(版本 20.10.15),该问题导致程序崩溃。 docker/cli#43426
  • 修复了一个问题:在使用 containerd 1.5.0 及以上版本时,docker stats 显示为空的统计信息 moby/moby#43567
  • docker scan CLI插件使用了“弱”依赖,以防止用户从下载的RPM软件包执行离线安装时出现“请求冲突”错误 docker/docker-ce-packaging#659

20.10.15

2022-05-05

此版本的 Docker Engine 包含更新的 composebuildxcontainerdrunc 组件版本,以及一些小的错误修复。

更新

  • 更新 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 stream 和 Fedora 36 添加软件包。

已知问题

20.10.14

2022-03-23

此版本的 Docker Engine 更新了容器的默认可继承功能,以解决 CVE-2022-24769, 还包含 containerd.io 运行时的新版本以解决相同问题。

更新

  • 更新默认可继承的能力。
  • 更新在构建过程中使用的容器的默认可继承功能。
  • 更新 containerd(containerd.io 个包)至 v1.5.11
  • 更新 docker buildxv0.8.1

20.10.13

2022-03-10

此版本的 Docker Engine 包含一些错误修复和打包更改, 更新了 docker scandocker buildx 命令,更新了 Go 运行时版本,并提供了 containerd.io 运行时的新版本。 与此次发布一起,我们现在还提供 Docker Compose V2 的 .deb.rpm 包, 可以使用(可选的)docker-compose-plugin 包进行安装。

  • 为 Docker Compose V2 提供 .deb.rpm 包。 Docker Compose v2.3.3 现在可以使用 docker-compose-plugin 包在 Linux 上安装,该包在 Docker CLI 上提供 docker compose 子命令。Docker Compose 插件也可以独立安装和运行,作为 docker-compose(Docker Compose V1)的即插即用替代品 docker/docker-ce-packaging#638compose-cli-plugin 包也可用于支持 CLI 插件的旧版本 Docker CLI(Docker CLI 18.09 及更高版本)。
  • 为即将发布的 Ubuntu 22.04 "Jammy Jellyfish" LTS 版本提供软件包 docker/docker-ce-packaging#645, docker/containerd-packaging#271

更新

  • 更新了捆绑的 buildx 版本到 v0.8.0
  • 更新 docker buildxv0.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 日志驱动程序,以防止潜在的守护程序崩溃,并防止在使用 fluentd-async-connect=true 且远程服务器无法访问时容器挂起 moby/moby#43147

错误修复和功能增强

  • 修复在更新容器状态时的竞态条件 moby/moby#43166
  • 更新 etcd 依赖以防止守护进程错误地持有文件锁 moby/moby#43259
  • 修复在配置默认 net.ipv4.ping_group_range sysctl 时用户命名空间的检测 moby/moby#43084
  • 在拉取镜像时,如果连接失败,重试下载镜像清单 moby/moby#43333
  • 命令行参考和API文档中的各种修复。
  • 使用“local”日志驱动程序时,防止容器生成大量日志消息导致 OOM moby/moby#43165

20.10.12

2021-12-13

此版本的 Docker Engine 仅包含打包更改,并对 docker scandocker 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 Engine 的情况下安装或升级 docker scan 包:

在基于 .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 命令检查镜像是否存在漏洞。

打包

  • 更新 docker scanv0.12.0
  • 更新 docker buildxv0.7.1
  • 将 Golang 运行时更新到 Go 1.16.12。

20.10.11

2021-11-17

重要

由于在 net/http更改 中的 Go 1.16,通过 $HTTP_PROXY 环境变量配置的 HTTP 代理不再用于 TLS(https://)连接。请确保同时设置 $HTTPS_PROXY 环境变量以处理对 https:// URL 的请求。请参阅 配置守护进程以使用代理 了解如何配置 Docker 守护进程以使用代理服务器。

分发版

Windows

  • 修复 panic.log 文件具有只读属性设置的问题 moby/moby#42987

打包

20.10.10

2021-10-25

重要

由于 net/http 变更Go 1.16,通过 $HTTP_PROXY 环境变量配置的 HTTP 代理不再用于 TLS(https://)连接。请确保同时设置 $HTTPS_PROXY 环境变量以处理对 https:// URL 的请求。请参阅 HTTP/HTTPS 代理部分 了解如何配置 Docker 守护程序以使用代理服务器。

构建器

  • 修复平台匹配逻辑以修复 docker build,在使用 BuildKit 时,Arm 设备无法在本地镜像缓存中找到镜像的问题 moby/moby#42954

运行时

  • 在默认的 seccomp 策略中添加对 clone3 系统调用的支持,以支持运行基于最新版本 Fedora 和 Ubuntu 的容器。 moby/moby/#42836
  • Windows:更新 hcsshim 库以修复容器镜像中稀疏文件处理的错误,该错误由 Windows 的最近更改引发 moby/moby#42944
  • 修复某些情况下 docker stop 可能会永远挂起的问题 moby/moby#42956

Swarm

打包

  • 为 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包的版本。

重要

由于 net/http 变更Go 1.16,通过 $HTTP_PROXY 环境变量配置的 HTTP 代理不再用于 TLS(https://)连接。请确保同时设置 $HTTPS_PROXY 环境变量以处理对 https:// URL 的请求。请参阅 HTTP/HTTPS 代理部分 了解如何配置 Docker 守护程序以使用代理服务器。

客户端

  • CVE-2021-41092 确保默认身份验证配置设置了地址字段,以防止凭据发送到默认注册表。

运行时

  • CVE-2021-41089 在执行docker cp期间,在chroot内部创建父目录,以防止特制容器更改主机文件系统中现有文件的权限。
  • CVE-2021-41091 锁定文件权限以防止非特权用户发现并执行 /var/lib/docker 中的程序。

打包

已知问题

随此版本静态包发布的 ctr Binaries并非静态链接,因此在使用 alpine 作为基础镜像的 Docker 镜像中无法运行。用户可以安装 libc6-compat 包,或下载早期版本的 ctr Binaries作为解决方法。有关此问题的更多详情,请参阅 containerd 的相关工单: containerd/containerd#5824

  • 将 Golang 运行时更新到 Go 1.16.8,其中包含对 CVE-2021-36221CVE-2021-39293 的修复
  • 更新静态Binaries以及 containerd.io 的 rpm 和 deb 软件包至 containerd v1.4.11 和 runc v1.0.2,以解决 CVE-2021-41103
  • 将捆绑的 buildx 版本更新到 v0.6.3,适用于 rpm 和 deb 软件包。

20.10.8

2021-08-03

重要

由于 net/http 变更Go 1.16,通过 $HTTP_PROXY 环境变量配置的 HTTP 代理不再用于 TLS(https://)连接。请确保同时设置 $HTTPS_PROXY 环境变量以处理对 https:// URL 的请求。请参阅 HTTP/HTTPS 代理部分 了解如何配置 Docker 守护程序以使用代理服务器。

已弃用

  • 弃用对加密的 TLS 私钥的支持。在 RFC 1423 中指定的旧版 PEM 加密在设计上是不安全的。由于它不对密文进行身份验证,因此容易受到填充 oracle 攻击,攻击者可以利用这种攻击恢复明文。对加密的 TLS 私钥的支持现已标记为弃用,并将在即将发布的版本中移除。 docker/cli#3219
  • 弃用 Kubernetes 堆栈支持。随着 Compose on Kubernetes 的弃用, Docker CLI 中 stackcontext 命令的 Kubernetes 支持现在被标记为已弃用,将在即将发布的版本中移除 docker/cli#3174

客户端

  • 在 Windows 上修复 Invalid standard handle identifier 个错误 docker/cli#3132

无根模式

  • 避免在 SELinux 主机上出现 can't open lock file /run/xtables.lock: Permission denied 错误 moby/moby#42462
  • 在与 SELinux 一起运行时禁用 overlay2 以防止权限被拒绝错误 moby/moby#42462
  • 修复 openSUSE Tumbleweed 上的 x509: certificate signed by unknown authority 错误 moby/moby#42462

运行时

  • 在使用 --platform 选项拉取与指定架构不匹配的单架构镜像时打印警告 moby/moby#42633
  • 修复在cgroups v2下运行时的错误Your kernel does not support swap memory limit警告 moby/moby#42479
  • Windows:修复一种情况,即如果 HcsShutdownComputeSystem 返回 ERROR_PROC_NOT_FOUND 错误,则不会停止容器 moby/moby#42613

Swarm

  • 修复一种可能性,即由于节点未能清理其旧的负载均衡器IP,重叠的IP地址可能存在 moby/moby#42538
  • 修复日志代理中的死锁("dispatcher is stopped") moby/moby#42537

打包

已知问题

随此版本静态包发布的 ctr Binaries并非静态链接,因此在使用 alpine 作为基础镜像的 Docker 镜像中无法运行。用户可以安装 libc6-compat 包,或下载早期版本的 ctr Binaries作为解决方法。有关此问题的更多详情,请参阅 containerd 的相关工单: containerd/containerd#5824

20.10.7

2021-06-02

客户端

  • 抑制因使用已弃用的 cgroups 而产生的警告 docker/cli#3099
  • 在 Linux 和 macOS 上防止向容器发送 SIGURG 信号。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 及更高版本中的破坏性更改。 moby/buildkit#2137.
    • 在镜像推送 5xx 错误时添加重试。 moby/buildkit#2043.
    • 修复使用通配符的 COPY 命令复制文件重命名时构建缓存未失效的问题。请注意,此更改会使使用通配符的复制命令的现有构建缓存失效。 moby/buildkit#2018.
    • 修复使用挂载时构建缓存未失效的问题 moby/buildkit#2076.
  • 修复在使用旧版schema 1镜像时,当FROM镜像未缓存时的构建失败问题 moby/moby#42382

日志记录

  • 更新 hcsshim SDK 以使 Windows 上的守护程序日志不那么冗长 moby/moby#42292

无根模式

  • 修复在启用用户命名空间的守护程序上构建镜像时,功能未被遵守的问题 moby/moby#42352

网络

  • 更新 libnetwork 以修复在具有内核启动参数 ipv6.disable=1 的环境中发布端口的问题,并修复导致内部 DNS 查找失败的死锁 moby/moby#42413

贡献者

  • 将 rootlesskit 更新到 v0.14.2 以修复在使用 slirp4netns 端口驱动程序启动用户空间代理时出现的超时问题 moby/moby#42294
  • 在无根守护程序上运行 docker-in-docker 时,修复“Device or resource busy”错误 moby/moby#42342

打包

20.10.6

2021-04-12

客户端

  • Docker CLI 对 Apple Silicon (darwin/arm64) 的支持 docker/cli#3042
  • config: 当回退到 v1.7.0 之前的配置文件时,打印弃用警告 ~/.dockercfg。此文件的支持将在未来的版本中移除 docker/cli#3000

构建器

  • 修复经典构建器静默忽略不受支持的 Dockerfile 选项,并提示启用 BuildKit moby/moby#42197

日志记录

网络

  • 修复 Docker 20.10 中的一个回归问题,该问题导致在映射端口时默认不再绑定 IPv6 地址 moby/moby#42205
  • 修复隐式 IPv6 端口映射未包含在 API 响应中的问题。在 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

打包

插件

  • 修复 docker 插件创建,使其生成与旧版本 Docker 兼容的插件 moby/moby#42256

无根模式

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引发的panic docker/cli#2959
  • 修复 WARNING: Error loading config file: .dockercfg: $HOME is not defined docker/cli#2958

运行时

日志记录器

  • 即使未设置labels,也尊重labels-regex配置 moby/moby#42046
  • 正确处理长日志消息,防止在非阻塞模式下 awslogs 将大于 16kB 的事件拆分 mobymoby#41975

无根模式

安全

  • 配置文件: seccomp: 更新至 Linux 5.11 系统调用列表 moby/moby#41971

Swarm

  • 修复重启后心跳信息无法持久化的问题 moby/moby#42060
  • 修复可能停滞的任务 moby/moby#42060
  • 修复仅提供--update-order--rollback-order时的--update-order--rollback-order标志问题 docker/cli#2963
  • 修复在某些情况下 docker service rollback 返回非零退出代码的问题 docker/cli#2964
  • 修复在 docker service rollback 上进度条方向不一致的问题 docker/cli#2964

20.10.3

2021-02-01

安全

  • CVE-2021-21285 防止无效镜像导致 Docker 守护进程崩溃
  • CVE-2021-21284 锁定文件权限以防止重映射的 root 用户访问 Docker 状态
  • 在使用 BuildKit 构建时,请确保应用 AppArmor 和 SELinux 配置文件

客户端

  • 在导入上下文之前进行检查,以降低提取的文件逃逸上下文存储的风险
  • Windows: 阻止从当前目录执行某些Binaries docker/cli#2950

20.10.2

2021-01-04

运行时

  • 修复在恢复具有重启策略但持续无法启动的容器时,守护程序启动挂起的问题 moby/moby#41729
  • overlay2: 修复一个会导致当 data-root 为 24 字节长时无法构建或运行容器的 off-by-one 错误 moby/moby#41830
  • systemd: 关闭时发送 sd_notify STOPPING=1 moby/moby#41832

网络

Swarm

  • 修复服务模式为replicated-jobglobal-job时的过滤问题 moby/moby#41806

打包

20.10.1

2020-12-14

构建器

打包

20.10.0

2020-12-08

已弃用 / 已移除

要查看所有已弃用功能的概述,请参阅 已弃用的引擎功能 页面。

API

  • 将 API 版本更新到 v1.41
  • 不要在指标 API 中使用“experimental” moby/moby#40427
  • GET /events 在资源清理完成后现在返回 prune 个事件 moby/moby#41259
    • 清理事件会为 containernetworkvolumeimagebuilder 返回,并包含一个 reclaimed 属性,表示回收的空间量(以字节为单位)
  • 添加 one-shot stats 选项以不预热 stats moby/moby#40478
  • 在系统信息的API中添加操作系统版本信息(/infomoby/moby#38349
  • 在 docker info 中添加 DefaultAddressPools moby/moby#40714
  • 为服务添加 PidsLimit 的 API 支持 moby/moby#39882

构建器

客户端

  • 在CLI中添加对swarm作业的支持 docker/cli#2262
  • -a/--all-tags 添加到 docker push docker/cli#2220
  • 添加对 Kubernetes 用户名/密码认证的支持 docker/cli#2308
  • --pull=missing|always|never 添加到 runcreate 命令 docker/cli#1498
  • docker exec 添加 --env-file 标志以从文件中解析环境变量 docker/cli#2602
  • --tail选项添加简写-n docker/cli#2646
  • 为服务检查的“pretty”格式添加日志驱动程序和选项 docker/cli#1950
  • docker run:使用 --cgroupns 指定 cgroup 命名空间模式 docker/cli#2024
  • docker manifest rm 从本地存储中删除清单列表草稿的命令 docker/cli#2449
  • 在“docker version”和“docker info”中添加“context” 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
  • 修复在 docker service update 上处理 --label-add/--label-rm--container-label-add/--container-label-rm--env-add/--env-rm 标志的顺序,以允许替换现有值 docker/cli#2668
  • 修复 docker rm --force 在一个或多个容器不存在时返回非零退出代码 docker/cli#2678
  • 通过使用total_inactive_file代替cache来改进内存统计显示 docker/cli#2415
  • 防范YAML文件过度使用别名的问题 docker/cli#2117
  • 在仅使用 source 字段设置配置或密钥时,允许使用高级语法 docker/cli#2243
  • 修复读取包含 usernamepassword 身份验证的配置文件,即使 auth 为空 docker/cli#2122
  • docker cp: 防止在无法获取目标状态时出现NPE docker/cli#2221
  • config: 保留配置文件的所有权和权限 docker/cli#2228

日志记录

  • 支持所有日志驱动程序(尽力而为)读取 docker logs moby/moby#40543
  • 为与启用索引确认的 Splunk HEC 配合使用,添加 splunk-index-acknowledgment 日志选项 moby/moby#39987
  • 向journald日志添加部分元数据 moby/moby#41407
  • 减少日志文件读取器的分配 moby/moby#40796
  • Fluentd: 添加 fluentd-async、fluentd-request-ack,并弃用 fluentd-async-connect moby/moby#39086

运行时

网络

打包

无根模式

安全

  • 修复在 Glibc 的 chroot 内加载基于 nsswitch 的配置中的 CVE-2019-14271 moby/moby#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
  • 为允许ping套接字和特权端口而无需权限添加默认sysctls moby/moby#41030
  • 修复 clone 系统调用的 seccomp 配置文件 moby/moby#39308

Swarm