Docker Engine 26.0 發行說明
此頁面描述了 Docker Engine 26.0 版本的最新變更、新增功能、已知問題和修復。
欲瞭解更多資訊關於
- 已棄用和已移除的功能,請參閱 已棄用的 Engine 功能。
- Engine API 的變更,請參閱 Engine API 版本歷史記錄。
26.0.2
2024-04-18如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli, 26.0.2 里程碑
- moby/moby, 26.0.2 里程碑
- 已棄用和移除的功能,請參閱已棄用功能。
- Engine API 的變更,請參閱API 版本歷史。
安全性
此版本包含 CVE-2024-32473 的安全修復,此問題涉及 IPv4-only 介面上 IPv6 的意外配置。
錯誤修正與增強功能
CVE-2024-32473:確保在引擎僅分配 IPv4 位址的介面上停用 IPv6。moby#GHSA-x84c-p2g9-rqv9
26.0.1
2024-04-11如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli, 26.0.1 里程碑
- moby/moby, 26.0.1 里程碑
- 已棄用和移除的功能,請參閱已棄用功能。
- Engine API 的變更,請參閱API 版本歷史。
錯誤修正與增強功能
- 修復導致網路介面專屬的
--sysctl選項阻礙容器啟動的迴歸問題。moby/moby#47646 - 從
docker save輸出中移除映像configOCI 描述符中錯誤的platform。moby/moby#47694 - containerd 映像儲存:
docker save產生的 OCI 存檔現在將在index.json中包含非空的mediaType欄位。moby/moby#47701 - 修復導致內部解析器無法將來自 IPvlan L3 網路的請求轉發到外部解析器的迴歸問題。moby/moby#47705
- 阻止在未指定父介面而建立的 IPvlan 和 Macvlan 網路中使用外部解析器。moby/moby#47705
打包更新
- 將 Go 執行環境更新至 1.21.9 moby/moby#47671,docker/cli#4987
- 將 Compose 更新至 v1.26.1 ,docker/docker-ce-packaging#1009
- 將 containerd 更新至 v1.7.15 (僅限靜態二進位檔) moby/moby#47692
26.0.0
2024-03-20如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli, 26.0.0 里程碑
- moby/moby, 26.0.0 里程碑
- 已棄用和移除的功能,請參閱已棄用功能。
- Engine API 的變更,請參閱API 版本歷史。
安全性
此版本包含 CVE-2024-29018 的安全修復,該問題涉及透過權威 DNS 伺服器從「內部」網路潛在的資料外洩。
新增功能
- 將
Subpath欄位新增至VolumeOptions,使得掛載磁碟區的子路徑成為可能。moby/moby#45687 - 將
volume-subpath支援新增至掛載旗標 (--mount type=volume,...,volume-subpath=<subpath>)。docker/cli#4331 - 在
docker stack deploy的 compose 檔案中接受=分隔符號和[ipv6]。docker/cli#4860 - rootless:新增對透過將
DOCKERD_ROOTLESS_ROOTLESSKIT_DISABLE_HOST_LOOPBACK環境變數設定為false(預設為true) 來啟用主機迴路的功能支援。這使得容器能夠使用 IP 位址10.0.2.2連接到主機。moby/moby#47352 - containerd 映像儲存:
docker image ls不再為多平台映像建立重複項目。moby/moby#45967 - containerd 映像儲存:發送 Prometheus 指標。moby/moby#47555
錯誤修正與增強功能
CVE-2024-29018:對於僅連接到「內部」網路的容器,不要將請求轉發到外部 DNS 伺服器。以前,如果主機的 DNS 伺服器在迴路位址 (例如 systemd 的 127.0.0.53) 上運行,則請求會被轉發。moby/moby#47589
確保容器重新啟動時不還原生成的 MAC 位址,但保留已配置的 MAC 位址。moby/moby#47233
警告使用 Docker Engine 25.0.0 建立的容器可能具有重複的 MAC 位址,必須重新建立。使用版本 25.0.0 或 25.0.1 建立並帶有使用者定義 MAC 位址的容器,在使用 25.0.2 啟動時將獲得生成的 MAC 位址。它們也必須重新建立。
始終嘗試在容器的迴路介面上啟用 IPv6,並且只有在成功時才將 IPv6 包含在
/etc/hosts中。moby/moby#47062注意預設情況下,當容器未連接到啟用 IPv6 的網路時,IPv6 將保持在容器的迴路介面上啟用。例如,僅連接到純 IPv4 網路的容器現在在其迴路介面上具有
::1位址。若要停用容器中的 IPv6,請在
create或run命令中使用選項--sysctl net.ipv6.conf.all.disable_ipv6=1,或在 Compose 檔案的服務配置部分中使用等效的sysctls選項。如果容器中沒有可用的 IPv6,因為它已為容器明確停用,或者主機的網路堆疊沒有啟用 IPv6 (或任何其他原因),則容器的
/etc/hosts檔案將不包含 IPv6 項目。修復當解壓縮包含擴展屬性 (xattrs) 的存檔到不支援它們的檔案系統時,
ADDDockerfile 指令失敗並顯示lsetxattr <file>: operation not supported的問題。moby/moby#47175修復
docker container start與--checkpoint一起使用時失敗的問題。moby/moby#47456恢復主機和內部橋接網路上的容器之間的 IP 連線。moby/moby#47356
不對現有的 swarm 網路強制執行新的驗證規則。moby/moby#47361
恢復 Windows 上預設「nat」網路中容器的 DNS 名稱。moby/moby#47375
當使用模稜兩可的參數調用
docker image ls時,列印提示。docker/cli#4849清理 OpenBSD 上的
@docker_cli_[UUID]檔案。docker/cli#4862當使用沒有 TLS 的遠端 TCP 連線時,新增明確的棄用通知訊息。docker/cli#4928,moby/moby#47556
使用主機
resolv.conf中的 IPv6 名稱伺服器作為 Docker Engine 內部 DNS 的上游解析器,而不是將它們列在容器的resolv.conf中。moby/moby#47512containerd 映像儲存:當使用
--userns-remap選項時,隔離具有不同 containerd 命名空間的映像。moby/moby#46786containerd 映像儲存:修復映像拉取未發出
Pulling fs layer狀態的問題。moby/moby#47432
API
- 為了保持向下相容性,當使用較舊的客戶端 (API 版本 < v1.44) 時,唯讀掛載預設不是遞迴的。moby/moby#47391
- 如果映像配置中缺少
Created欄位,GET /images/{id}/json會省略Created欄位 (以前是0001-01-01T00:00:00Z)。moby/moby#47451 - 對於 API 版本 <= 1.43,在
GET /images/{id}/json中用0001-01-01T00:00:00Z填充缺少的Created欄位。moby/moby#47387 POST /images/search端點結果中的is_automated欄位現在始終為false。因此,搜尋is-automated=true將不會產生任何結果,而is-automated=false將不執行任何操作。moby/moby#47465- 從
GET /images/{name}/json回應中移除Container和ContainerConfig欄位。moby/moby#47430
打包更新
- 將 BuildKit 更新至 v0.13.1。moby/moby#47582
- 將 Buildx 更新至 v0.13.1。docker/docker-ce-packaging#1000
- 將 Compose 更新至 v2.25.0。docker/docker-ce-packaging#1002
- 將 Go 執行環境更新至 1.21.8。moby/moby#47502
- 將 RootlessKit 更新至 v2.0.2。moby/moby#47508
- 將 containerd 更新至 v1.7.13 (僅限靜態二進位檔) moby/moby#47278
- 將 runc 二進位檔更新至 v1.1.12 moby/moby#47268
- 將 OTel 更新至 v0.46.1 / v1.21.0 moby/moby#47245
已移除
從
GET /images/{name}/json回應中移除Container和ContainerConfig欄位。moby/moby#47430棄用接受不帶 TLS 的遠端 TCP 連線的功能。棄用通知 docker/cli#4928 moby/moby#47556。
移除已棄用的 API 版本 (API < v1.24) moby/moby#47155
預設情況下停用已棄用映像格式的拉取。這些映像格式已棄用,並將在未來版本中移除支援。moby/moby#47459
映像:移除已棄用的 IDFromDigest moby/moby#47198
移除已棄用的
github.com/docker/docker/pkg/loopback封裝。moby/moby#47128pkg/system:移除已棄用的
ErrNotSupportedOperatingSystem、IsOSSupportedmoby/moby#47129pkg/homedir:移除已棄用的 Key() 和 GetShortcutString() moby/moby#47130
pkg/containerfs:移除已棄用的 ResolveScopedPath moby/moby#47131
daemon 旗標
--oom-score-adjust在 v24.0 中已棄用,現已移除。moby/moby#46113從 api/types 封裝中移除已棄用別名。這些類型在 v25.0.0 中已棄用,該版本提供了臨時別名。moby/moby#47148 這些別名現已移除:
types.Info、types.Commit、types.PluginsInfo、types.NetworkAddressPool、types.Runtime、types.SecurityOpt、types.KeyValue、types.DecodeSecurityOptions、types.CheckpointCreateOptions、types.CheckpointListOptions、types.CheckpointDeleteOptions、types.Checkpoint、types.ImageDeleteResponseItem、types.ImageSummary、types.ImageMetadata、types.ServiceUpdateResponse、types.ServiceCreateResponse、types.ResizeOptions、types.ContainerAttachOptions、types.ContainerCommitOptions、types.ContainerRemoveOptions、types.ContainerStartOptions、types.ContainerListOptions、types.ContainerLogsOptionscli/command/container:移除已棄用的
NewStartOptions()docker/cli#4811cli/command:移除已棄用的
DockerCliOption、InitializeOptdocker/cli#4810