Docker Engine 20.10 發行說明
本文件說明了 Docker Engine 20.10 版的最新變更、新增功能、已知問題及修正。
20.10.24
2023-04-04更新
錯誤修正與增強功能
- 修正了多個可能導致 Swarm 加密重疊網路無法履行其保證的問題,解決了 CVE-2023-28841、CVE-2023-28840 和 CVE-2023-28842。
- 現在,若核心不支援加密重疊網路,將會回報錯誤。
- 加密重疊網路會立即設定,而不再等待多個節點附加。
- 透過使用
xt_bpf核心模組,加密重疊網路現在可在 Red Hat Enterprise Linux 9 上使用。 - Swarm 重疊網路的使用者應檢閱 GHSA-vwm3-crmr-xfxw,以確保未發生意外洩露。
- 將 github.com/containerd/fifo 升級至 v1.1.0,以修正潛在的恐慌錯誤 moby/moby#45216。
- 修正已安裝的 CLI 插件缺少 Bash 自動完成的問題 docker/cli#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 (
containerd.io套件) 更新至 v1.6.15。 - 更新
docker-compose-cli的套件版本格式,以允許發行版版本更新 docker/docker-ce-packaging#822。 - 將 Go 執行環境更新至 1.18.10,
錯誤修正與增強功能
修正啟用 BuildKit 時,使用
--add-host=host.docker.internal:host-gateway執行docker build會失敗的問題 moby/moby#44650。復原 seccomp:在預設設定檔中阻止對
AF_VSOCK的 Socket 呼叫 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 Artifact 時的錯誤訊息 moby/moby#44413、 moby/moby#44569。
- 修正為容器選擇隨機連接埠時,主機的臨時連接埠範圍被忽略的問題 moby/moby#44476。
- 修正使用 OpenSSH 8.9 或更高版本的主機上,執行
docker build時出現ssh: parse error in message type 27錯誤的問題 moby/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) 的套件。
- 新增對 Docker Hub 的
allow-nondistributable-artifacts支援 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。
錯誤修正與增強功能
- 移除 Bash 自動完成中
--platform的實驗性限制 docker/cli#3824。 - 修正從舊版 Windows CLI 將 Docker Engine 註冊為服務時,出現
Invalid standard handle identifier恐慌錯誤的問題 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(「依摘要拉取」) 拉取映像檔時,映像檔解析會透過內容可定址摘要進行,並且不會使用映像檔和標籤。雖然這是預期的行為,但可能導致混淆,並可能透過社交工程利用來執行本機映像檔儲存庫中已存在的映像檔。Docker 現在會檢查摘要是否與用於拉取映像檔的儲存庫名稱匹配,否則將產生錯誤。 - 更新了
image:tag@digest參考的處理方式。詳細資訊請參閱上方的「Daemon」部分。
錯誤修正與增強功能
- 新增了針對 CVE-2022-39253 的緩解措施,適用於使用傳統建置器和 Git URL 作為建置內容時。
- 對傳統建置器新增了緩解措施,並將 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 的修正。
錯誤修正與增強功能
- 修正了在執行
docker builder prune或docker system prune期間可能導致恐慌錯誤的問題 moby/moby#44122。 - 修正了一個錯誤,即如果常駐程式在啟用「即時還原」的情況下運行並重新啟動,使用
docker volume prune會移除仍在使用的磁碟區 moby/moby#44238。
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 (
containerd.io套件) 更新至 v1.6.8。 - 將 runc 版本更新至 v1.1.4。
- 將 Go 執行環境更新至 1.18.6,其中包含對 CVE-2022-27664 和 CVE-2022-32190 的修正。
錯誤修正與增強功能
- 為 Docker Compose 新增 Bash 自動完成功能 docker/cli#3752。
- 修正建置期間未保留檔案功能的問題 moby/moby#43876。
- 修正可能因並行地圖讀取和地圖寫入而導致恐慌錯誤的問題 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 以及 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 指令中移除星號 docker/cli#3648。
- 修正 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 的修正。
更新
- 更新 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 或更高版本運行時,
docker stats顯示空白統計資訊的問題 moby/moby#43567。 - 對
docker scanCLI 插件使用「弱」依賴項,以防止使用者從下載的 RPM 套件執行離線安裝時出現「請求衝突」錯誤 docker/docker-ce-packaging#659。
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 (
containerd.io套件) 更新至 v1.6.4。 - 將 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 執行環境以解決相同的問題。
更新
- 更新預設的可繼承功能。
- 更新建置期間使用的容器的預設可繼承功能。
- 將 containerd (
containerd.io套件) 更新至 v1.5.11。 - 將
docker buildx更新至 v0.8.1。
20.10.13
2022-03-10此版 Docker Engine 包含一些錯誤修正和套件變更,docker scan 和 docker 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#638。compose-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 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 日誌驅動程式,以防止潛在的常駐程式崩潰,並防止在使用
fluentd-async-connect=true且遠端伺服器無法到達時,容器掛起 moby/moby#43147。
錯誤修正與增強功能
- 修正更新容器狀態時的競態條件 moby/moby#43166。
- 更新 etcd 依賴項,以防止常駐程式錯誤地持有檔案鎖 moby/moby#43259
- 修正配置預設
net.ipv4.ping_group_rangesysctl 時使用者命名空間的偵測問題 moby/moby#43084。 - 如果在映像檔拉取期間發生連線失敗,則重試下載映像檔清單 moby/moby#43333。
- 命令列參考和 API 文件中的各種修正。
- 防止在使用「local」日誌驅動程式且容器產生大量日誌訊息時發生 OOM 問題 moby/moby#43165。
20.10.12
2021-12-13
此版 Docker Engine 僅包含套件變更,並提供了 docker scan 和 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 Engine
在基於 .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 指令檢查映像檔是否存在漏洞。
打包
20.10.11
2021-11-17
重要由於 Go 1.16 中 net/http 的變更,透過
$HTTP_PROXY環境變數配置的 HTTP 代理不再用於 TLS (https://) 連線。請務必也設定$HTTPS_PROXY環境變數,以處理對https://URL 的請求。請參閱 配置常駐程式以使用代理 以了解如何配置 Docker 常駐程式以使用代理伺服器。
發布
- 處理模糊的 OCI 程式清單解析,以緩解 CVE-2021-41190 / GHSA-mc8v-mgrf-8f4m。詳情請參閱 GHSA-xmmx-7jpf-fx42。
Windows
- 修正
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_PROXY環境變數配置的 HTTP 代理不再用於 TLS (https://) 連線。請務必也設定$HTTPS_PROXY環境變數,以處理對https://URL 的請求。請參閱 「HTTP/HTTPS 代理」部分以了解如何配置 Docker 常駐程式以使用代理伺服器。
建置器
- 修正平台匹配邏輯,以解決在 Arm 機器上使用 BuildKit 時,
docker build無法在本機映像檔快取中找到映像檔的問題 moby/moby#42954
執行時期
- 在預設的 seccomp 策略中新增對
clone3系統呼叫的支援,以支援基於最新版 Fedora 和 Ubuntu 的容器運行。 moby/moby/#42836。 - Windows:更新 hcsshim 函式庫,以修正容器層中稀疏檔案處理的一個錯誤,此錯誤由 Windows 最近的變更所暴露 moby/moby#42944。
- 修正
docker stop在某些情況下可能永遠掛起的問題 moby/moby#42956。
Swarm
- 修正更新服務時,失敗後未回滾的問題 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_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二進位檔並非靜態連結,因此無法在以 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。
- 將綁定的 buildx 版本更新至 v0.6.3,適用於 rpm 和 deb 套件。
20.10.8
2021-08-03
重要由於 Go 1.16 中 net/http 的變更,透過
$HTTP_PROXY環境變數配置的 HTTP 代理不再用於 TLS (https://) 連線。請務必也設定$HTTPS_PROXY環境變數,以處理對https://URL 的請求。請參閱 「HTTP/HTTPS 代理」部分以了解如何配置 Docker 常駐程式以使用代理伺服器。
棄用
- 棄用對加密 TLS 私鑰的支援。RFC 1423 中指定的舊版 PEM 加密在設計上不安全。由於它不驗證密文,因此容易受到填充神諭攻擊,攻擊者可以恢復明文。對加密 TLS 私鑰的支援現在已標記為棄用,並將在即將發布的版本中移除。 docker/cli#3219
- 棄用 Kubernetes 堆疊支援。繼 Compose on Kubernetes 棄用之後,Docker CLI 中
stack和context指令對 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二進位檔並非靜態連結,因此無法在以 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
- 將綁定的 buildx 版本更新至 v0.6.1,適用於 rpm 和 deb 套件 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
用戶端
- 抑制針對已棄用 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 時,出現「裝置或資源忙碌」錯誤的問題 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 插件套件 (
docker-scan-plugin) 更新至 v0.8 docker/docker-ce-packaging#545。
20.10.6
2021-04-12
用戶端
- Docker CLI 對 Apple Silicon (darwin/arm64) 的支援 docker/cli#3042
- 配置:當回退到 v1.7.0 之前的配置文件
~/.dockercfg時,印出棄用警告。對此檔案的支援將在未來版本中移除 docker/cli#3000
建置器
- 修正傳統建置器靜默忽略不支援的 Dockerfile 選項,並改為提示啟用 BuildKit 的問題 moby/moby#42197
日誌記錄
- json-file:修正偶發的意外 EOF 錯誤 moby/moby#42174
網路
- 修正 docker 20.10 中的迴歸問題,導致在映射連接埠時,IPv6 位址不再預設綁定 moby/moby#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 的修正。 moby/moby#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
- 透過
docker-scan-plugin套件,為 Linux amd64 上的 Docker Scan CLI 插件提供支援,作為docker-ce-cli套件的建議依賴項 docker/docker-ce-packaging#537 - 為 arm64 包含 VPNKit 二進位檔 moby/moby#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(...) ... input/output error」錯誤 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 prunemoby/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 匹配時,
userns-remap選項的問題 moby/moby#42013。 - 靜態:將 runc 二進位檔更新至 v1.0.0-rc93 moby/moby#42014。
日誌記錄器
- 即使未設定
labels,也遵守labels-regex配置 moby/moby#42046。 - 正確處理長日誌訊息,防止
awslogs在非阻塞模式下將大於 16kB 的事件分割 mobymoby#41975。
無根模式
- 透過將 systemd
KillMode設定為混合模式,防止服務在停止時掛起 moby/moby#41956。 - dockerd-rootless.sh:新增錯字防護 moby/moby#42070。
- 將 rootlesskit 更新至 v0.13.1,以修正 IPv6 位址的處理問題 moby/moby#42025。
- 允許在使用者命名空間內
mknodding FIFOmoby/moby#41957。
安全性
- 設定檔: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:防止從目前目錄執行某些二進位檔 docker/cli#2950。
20.10.2
2021-01-04
執行時期
- 修正常駐程式在還原帶有重啟策略但持續啟動失敗的容器時,啟動掛起的問題 moby/moby#41729。
- overlay2:修正當
data-root長度為 24 位元組時,阻止建置或運行容器的差一位錯誤 moby/moby#41830。 - systemd:在關機時發送
sd_notify STOPPING=1moby/moby#41832。
網路
- 修正 IPv6 連接埠轉發問題 moby/moby#41805 moby/libnetwork#2604
Swarm
- 修正
replicated-job和global-job服務模式的過濾問題 moby/moby#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
棄用 / 移除
有關所有棄用功能的概述,請參閱「已棄用 Engine 功能」頁面。
- 從不支援按摘要拉取的非兼容註冊表執行
docker pull時,發出警告和棄用通知 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 name value' 語法,改用
ENV name=valuedocker/cli#2743。 - 移除 API v1.41 及更高版本中已棄用的「filter」參數 moby/moby#40491。
- 在推送到發布時禁用程式清單 v2 schema 1 moby/moby#41295。
- 移除導致舊版 Docker 客戶端 (<= 1.12) 崩潰的
MalformedHostHeaderOverride駭客修復,此情況下應設定DOCKER_API_VERSIONmoby/moby#39076。 - 移除「docker engine」子指令 docker/cli#2207。
- 從「dab」檔案中移除實驗性「deploy」 docker/cli#2216。
- 移除已棄用的
docker search --automated和--stars旗標 docker/cli#2338。 - 不再允許引擎標籤中使用保留的命名空間 docker/cli#2326。
API
- 將 API 版本更新至 v1.41
- metrics API 不需要「實驗性」功能 moby/moby#40427。
GET /events現在在資源清理完成後返回清理事件 moby/moby#41259。- 清理事件針對
container、network、volume、image和builder返回,並帶有reclaimed屬性,指示回收的空間量 (以位元組為單位)
- 清理事件針對
- 新增
one-shot統計選項,不預先載入統計資訊 moby/moby#40478。 - 將作業系統版本資訊新增至系統資訊的 API (
/info) moby/moby#38349。 - 將
DefaultAddressPools新增至docker infomoby/moby#40714。 - 為服務中的
PidsLimit新增 API 支援 moby/moby#39882。
建置器
- buildkit,dockerfile:支援
RUN --mount選項,無需指定實驗性 dockerfile#syntax指令。 moby/buildkit#1717。 - dockerfile:
ARG指令現在支援在同一行上定義多個建置參數,類似於ENVmoby/buildkit#1692。 - dockerfile:
ADD中的--chown旗標現在允許參數擴展 moby/buildkit#1473。 - buildkit:獲取授權令牌已移至客戶端 (如果客戶端支援)。密碼不再洩漏到建置常駐程式中,使用者可以從建置輸出中查看何時存取憑證或令牌。 moby/buildkit#1660。
- buildkit:在與註冊表通訊以進行推送和拉取時的連線錯誤現在會觸發重試 moby/buildkit#1791。
- buildkit:Git 來源現在支援透過建置機密進行令牌驗證 moby/moby#41234 docker/cli#2656 moby/buildkit#1533
- buildkit:從 Git 來源建置現在支援轉發 SSH Socket 進行驗證 moby/buildkit#1782。
- buildkit:避免產生過多日誌的建置導致崩潰或減慢建置速度。如有需要,會執行日誌截斷。 moby/buildkit#1754。
- buildkit:將預設 Seccomp 設定檔更改為 Docker 提供的設定檔 moby/buildkit#1807。
- buildkit:在 Windows 上公開 SSH 代理 Socket 的支援已改進 moby/buildkit#1695。
- buildkit:在使用
--progress=plain時預設禁用截斷 moby/buildkit#1435。 - buildkit:允許更好地處理客戶端會話在多個建置之間共享時中斷的情況 moby/buildkit#1551。
- buildkit:機密:允許使用環境變數提供機密 moby/moby#41234 docker/cli#2656 moby/buildkit#1534
- 支援
--secret id=foo,env=MY_ENV作為將機密值儲存到檔案的替代方法。 --secret id=GIT_AUTH_TOKEN將在環境變數存在且檔案不存在時載入環境變數。
- 支援
- buildkit:支援鏡像回退、不安全的 TLS 和自訂 TLS 配置 moby/moby#40814。
- buildkit:遠端快取:在遍歷結果時,每個項目只訪問一次 moby/moby#41234 moby/buildkit#1577
- 在更大的圖形上提高性能和 CPU 使用率。
- buildkit:當本地映像檔平台不匹配時檢查遠端 moby/moby#40629。
- buildkit:映像檔匯出:在建立新圖層 blob 時使用正確的媒體類型 moby/moby#41234 moby/buildkit#1541
- buildkit:進度介面:修正日誌時間格式 moby/moby#41234 docker/cli#2656 moby/buildkit#1549
- buildkit:緩解並行推送時的 containerd 問題 moby/moby#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 中從快取層建置的映像檔缺少資料的問題。
- 修正 https://github.com/moby/buildkit/issues/1388 中
- 允許遠端上下文 URL 使用
ssh://moby/moby#40179。 - 建置器:移除舊版建置的會話處理 (曾為實驗性功能) moby/moby#39983。
用戶端
- 為 CLI 新增 swarm 作業支援 docker/cli#2262。
- 為
docker push新增-a/--all-tags選項 docker/cli#2220。 - 新增對 Kubernetes 使用者名稱/密碼驗證的支援 docker/cli#2308。
- 為
run和create指令新增--pull=missing|always|never選項 docker/cli#1498。 - 為
docker exec新增--env-file旗標,用於從檔案解析環境變數 docker/cli#2602。 - 為
--tail選項新增簡寫-ndocker/cli#2646。 - 為服務檢查「pretty」格式新增日誌驅動程式和選項 docker/cli#1950。
docker run:使用--cgroupns指定 cgroup 命名空間模式 docker/cli#2024。docker manifest rm指令用於從本機儲存中移除程式清單草稿 docker/cli#2449。- 將「context」新增至「docker version」和「docker info」 docker/cli#2500。
- 將平台旗標傳播到容器建立 API docker/cli#2551。
docker ps --format旗標現在有一個.State佔位符,用於列印容器狀態,而不包含關於運行時間和健康檢查的額外詳細資訊 docker/cli#2000。- 新增對 docker-compose schema 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。
- 當僅使用源欄位設定配置或機密時,允許使用進階語法 docker/cli#2243。
- 修正即使
auth為空,也能讀取包含使用者名稱和密碼驗證的配置檔案 docker/cli#2122。 docker cp:防止在檢查目標失敗時出現 NPE 錯誤 docker/cli#2221。- 配置:保留配置檔案的所有權和權限 docker/cli#2228。
日誌記錄
- 支援使用所有日誌驅動程式讀取
docker logs(盡力而為) moby/moby#40543。 - 新增
splunk-index-acknowledgment日誌選項,以支援啟用索引確認的 Splunk HECs moby/moby#39987。 - 為 journald 日誌新增部分中繼資料 moby/moby#41407。
- 減少日誌檔案讀取器的記憶體分配 moby/moby#40796。
- Fluentd:新增
fluentd-async、fluentd-request-ack,並棄用fluentd-async-connectmoby/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執行環境,新增對 containerd v2 shim 的支援 moby/moby#41182。 - 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。 - 在特權模式下啟動容器時,
docker run中的--device旗標現在將被遵守 moby/moby#40291。 - 強制執行保留的內部標籤 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.internalmoby/moby#40007。 - 在
/etc/hosts中包含連結容器的 IPv6 位址 moby/moby#39837。 --ip6tables啟用 IPv6 iptables 規則 (僅限實驗性功能) moby/moby#41622。- 如果主機名稱不等於容器名稱,則為主機名稱新增別名 moby/moby#39204。
- 更好地選擇 DNS 伺服器 (搭配 systemd) moby/moby#41022。
- 將 docker 介面新增至 firewalld docker 區域 moby/moby#41189 moby/libnetwork#2548
- 修正 CentOS8 上的 DNS 問題 docker/for-linux#957。
- 修正 RHEL 8 上,Firewalld 運行
FirewallBackend=nftables時的連接埠轉發問題 moby/libnetwork#2496。
- 修正報告為「在 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
- 修正當 IPTableEnable=false 時,未建立
DOCKER-USER鏈的問題 moby/moby#40808 moby/libnetwork#2471 - 修正 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:在單元檔 (unit file) 的 After= 中新增 multi-user.target moby/moby#41297
- docker.service:允許 Socket 啟用 moby/moby#37470
- seccomp:移除 dockerd 對 libseccomp 的依賴 moby/moby#41395
無根模式
- 無根模式 (rootless):從實驗階段畢業 moby/moby#40759
- 新增 dockerd-rootless-setuptool.sh moby/moby#40950
- 支援
--exec-opt native.cgroupdriver=systemdmoby/moby#40486
安全性
- 修正 CVE-2019-14271 在 Glibc 下的 chroot 環境中載入基於 nsswitch 的配置問題 moby/moby#39612
- seccomp:將
clock_adjtime加入白名單。時間調整仍需要CAP_SYS_TIMEmoby/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,允許在沒有權限 (capabilities) 的情況下使用 ping sockets 和特權埠 moby/moby#41030
- 修正 clone 系統呼叫的 seccomp 設定檔 moby/moby#39308
Swarm
- 新增對 swarm 任務 (jobs) 的支援 moby/moby#40307
- 為 stack/service 指令新增權限 (capabilities) 支援 docker/cli#2687 docker/cli#2709 moby/moby#39173 moby/moby#41249
- 新增支援傳送服務的運行中 (Running) 和期望 (Desired) 任務計數 moby/moby#39231
- 服務:支援
--mount type=bind,bind-nonrecursivemoby/moby#38788 - 支援 Swarm 服務上的 ulimits moby/moby#41284 docker/cli#2712
- 修正服務日誌可能在工作者 (worker) 上洩漏 goroutine 的問題 moby/moby#40426