Docker Engine 27 版本資訊
此頁面說明 Docker Engine 27 版本的最新變更、新增功能、已知問題及修復項目。
欲瞭解更多資訊關於
- 已棄用和已移除的功能,請參閱 已棄用的 Engine 功能。
- Engine API 的變更,請參閱 Engine API 版本歷史記錄。
27.5
Docker Engine 27.5 系列版本的發布資訊。
27.5.1
2025-01-22如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復了在預設橋接器初始化失敗後,可能持續導致常駐程式(daemon)無法啟動的問題。moby/moby#49307
- 新增
DOCKER_IGNORE_BR_NETFILTER_ERROR環境變數。將其設為1可允許在無法載入br_netfilter的主機上執行。部分功能將無法運作,包括停用橋接網路中的容器間通訊。若停用使用者空間代理(userland proxy),將無法從同一網路中的另一個容器存取某個容器已發布的埠口。moby/moby#49306
打包更新
- 將 Go 執行環境更新至 1.22.11 (修復 CVE-2024-45341, CVE-2024-45336)。moby/moby#49312, docker/docker-ce-packaging#1147, docker/cli#5762
- 將 RootlessKit 更新至 v2.3.2 以支援
passt>= 2024_10_30.ee7d0b6。moby/moby#49304 - 將 Buildx 更新至 v0.20.0。docker/docker-ce-packaging#1149
27.5.0
2025-01-13如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修復與功能增強
- containerd 映像檔儲存庫:修復透過 tarball 將建構內容傳遞至
/build端點的問題。moby/moby#49194 - 沒有
keepStorage值的建構器垃圾回收策略現在會正確繼承defaultKeepStorage限制。moby/moby#49137 - 在常駐程式啟動期間保留網路標籤。moby/moby#49200
- 修復刪除容器時可能發生的競爭條件(race condition)錯誤。moby/moby#49239
Go SDK
pkg/sysinfo:廢棄NumCPU。此工具的行為與runtime.NumCPU相同。moby/moby#49247pkg/fileutils:廢棄GetTotalUsedFds:此函數僅內部使用,將於下一個版本移除。moby/moby#49209pkg/ioutils:廢棄BytesPipe、NewBytesPipe、ErrClosed、WriteCounter、NewWriteCounter、NewReaderErrWrapper、NopFlusher、NopWriter、NopWriteCloser。這些僅內部使用,將於下一個版本移除。moby/moby#49246, moby/moby#49255pkg/reexec:此套件已被廢棄並移至獨立模組。請改用github.com/moby/sys/reexec。moby/moby#49135
打包更新
- 將 containerd 更新至 v1.7.25 moby/moby#49253
- 將
runc更新至 v1.2.4 moby/moby#49243 - 將 BuildKit 更新至 v0.18.2 moby/moby#48949
- 將 Compose 更新至 v2.32.2 docker/docker-ce-packaging#1140
27.4
Docker Engine 27.4 系列版本的發布資訊。
27.4.1
2024-12-18如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復未設定 OTel 時的過度記憶體配置問題。moby/moby#49079
docker info指令及對應的GET /infoAPI 端點在常駐程式啟動時,若bridge-nf-call-iptables或bridge-nf-call-ip6tables被停用,將不再包含警告。br_netfilter核心模組現在會在需要時嘗試載入,這使得之前的警告資訊變得不準確。moby/moby#49090- 嘗試載入核心模組(包括
ip6_tables和br_netfilter),並採用在 Docker-in-Docker 容器內較可能成功的方式。moby/moby#49043 - 修復導致 iptables
DOCKER FILTER鏈在失敗時未被清理的錯誤。moby/moby#49110
打包更新
- 將 Compose 更新至 v2.32.1。docker/docker-ce-packaging#1130
- 將 Buildx 更新至 v0.19.3。docker/docker-ce-packaging#1132
- 將 runc (僅靜態二進位檔) 更新至 v1.2.3 moby/moby#49085
27.4.0
2024-12-09如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
API
- 啟用
manifests選項的GET /images/json現在會保留清單在 manifest-index 中出現的原始順序。moby/moby#48712
錯誤修正與增強功能
- 使用
jsonfile或local日誌驅動程式讀取日誌時,讀取或解析底層日誌檔的錯誤將導致跳過該檔案的剩餘部分並移至下一個日誌檔(如果存在),而不是向用戶端返回錯誤並關閉串流。錯誤可在 Docker 常駐程式日誌中查看,並在配置追蹤時匯出至追蹤資訊中。moby/moby#48842 - 讀取日誌檔時,壓縮的日誌檔現在僅在需要時解壓縮,而不是在啟動日誌串流前解壓縮所有檔案。moby/moby#48842
- 修復在停用
userland-proxy且未載入並啟用核心br_netfilter模組的情況下,無法從同一網路中的另一個容器存取橋接網路上某個容器已發布埠口的問題。常駐程式現在會在建立網路時嘗試載入模組並啟用bridge-nf-call-iptables或bridge-nf-call-ip6tables。moby/moby#48685 - 修復
bridge和br_netfilter核心模組的載入。moby/moby#48966 - containerd 映像檔儲存庫:修復 Docker 常駐程式在使用 containerd 快照程式且存在大量組建/映像檔時,因 "context deadline exceeded" 錯誤而無法完全啟動的問題。moby/moby#48954
- containerd 映像檔儲存庫:修復未完全拉取的映像檔未被垃圾回收的問題。moby#48910, moby/moby#48957
- containerd 映像檔儲存庫:修復
docker image inspect在RepoDigests中輸出重複參照的問題。moby/moby#48785 - containerd 映像檔儲存庫:修復因非 TLS 相關錯誤導致 HTTPS 請求失敗時,無法連線至某些不安全登錄檔的問題。moby/moby#48758
- containerd 映像檔儲存庫:移除在標記非懸空(dangling)映像檔時出現的混淆警告日誌。moby/moby#49010
- containerd 映像檔儲存庫:不要在
docker image ls --tree中為名稱加底線。docker/cli#5519 - containerd 映像檔儲存庫:將
docker image ls --tree中的USED欄位名稱改為IN USE。docker/cli#5518 dockerd-rootless-setuptool.sh install --force現在會忽略 RootlessKit 錯誤。moby/moby#48695- 停用橋接網路中橋接器所分配位址的 IPv6 重複位址檢測 (DAD)。moby/moby#48684
- 移除 BuildKit 初始化逾時。moby/moby#48963
- 在 ZFS 上移除資料集時忽略 "dataset does not exist" 錯誤。moby/moby#48968
- Client:防止閒置連線洩漏檔案描述符(FD)。moby/moby#48764
- 修復透過
--mount選項建立的匿名磁碟區未被標記為匿名的问题。moby/moby#48755 - 在使用 live-restore 重啟常駐程式後,確保 iptables 跳轉至
DOCKER-USER鏈位於其他規則之前。moby/moby#48714 - 修復由 OTel 計量器導致的潛在記憶體洩漏。moby/moby#48693
- 為每個映像檔儲存庫建立不同的組建歷史記錄資料庫。moby/moby#48688
- 修復在緊密迴圈中進行 DNS 解析時導致的過度記憶體使用問題。moby/moby#48840
- 修復
docker run期間無法取消映像檔拉取的問題。docker/cli#5654 docker login和docker logout指令在憑證未變更時不再更新設定檔。docker/cli#5569- 最佳化
docker stats以減少閃爍問題。docker/cli#5588, docker/cli#5635 - 修復無法存取的插件路徑導致無法偵測到插件的問題。docker/cli#5652
- 為 cobra 產生的 Shell 自動完成功能新增
events --filter支援。docker/cli#5614 - 修復
events --filter daemon=的 bash 自動完成。docker/cli#5563 - 改進
docker rm的容器 Shell 自動完成功能。docker/cli#5540 - 為
--platform旗標新增 Shell 自動完成功能。docker/cli#5540 - rootless:使
/etc/cdi和/var/run/cdi可由容器裝置介面 (CDI) 整合存取。moby/moby#49027
已移除
- 廢棄
Daemon.Exists()和Daemon.IsPaused()。這些函數已不再使用,將於下一個版本移除。moby/moby#48719 - 廢棄
container.ErrNameReserved和container.ErrNameNotReserved。moby/moby#48697 - 廢棄
pkg/platform- 此套件僅內部使用,將於下一個版本移除。moby/moby#48863 - 廢棄
RepositoryInfo.Class。此欄位已不再使用,將於下一個版本移除。moby/moby#49013 - Go SDK:修復
cli/command.ConfigureAuth()的廢棄提示,該函數自 v27.2.1 起被標記為廢棄。docker/cli#5552 - Go SDK:廢棄
cli.Errors類型,轉而使用 Go 的errors.Join。docker/cli#5548
打包更新
- 將 Go 執行環境更新至 1.22.10。moby/moby#49026, docker/cli#5669, docker/docker-ce-packaging#1120。
- 將 Compose 更新至 v2.31.0。docker/docker-ce-packaging#1100
- 將 BuildKit 更新至 v0.17.3。moby/moby#49024
- 將 Buildx 更新至 v0.19.1。docker/docker-ce-packaging#1115
- 將 containerd 更新至 v1.7.24。moby/moby#48934
- 將 containerd (僅靜態二進位檔) 更新至 v1.7.24。moby/moby#48919
- 將 runc 更新至 v1.2.2。moby/moby#48919
27.3
Docker Engine 27.3 系列版本的發布資訊。
27.3.1
2024-09-20如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- CLI:修復指令執行指標無法正確匯出的問題。docker/cli#5457
打包更新
- 將 Compose 更新至 v2.29.7
27.3.0
2024-09-19如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- containerd 映像檔儲存庫:修復
docker image prune -a將由 digested 參照映像檔啟動的容器所使用的映像檔解除標記的問題。moby/moby#48488 - 為常駐程式選項新增
--feature旗標。moby/moby#48487 - 更新了
--gpus=0旗標的處理方式,使其與 NVIDIA Container Runtime 一致。moby/moby#48483 - 支援 WSL2 鏡像模式網路使用
loopback0介面處理來自 Windows 主機的封包。moby/moby#48514 - 修復在
--iptables=false、--ip6tables=true(預設)、且主機核心模組br_netfilter未正常載入,並存在針對轉發封包設有 DROP 規則的防火牆環境下,阻止 IPv4 橋接網路上容器間通訊的問題。moby/moby#48511 - CLI:修復
docker volume update指令在未傳遞引數/磁碟區時導致 CLI 崩潰的問題。docker/cli#5426 - CLI:在 Windows 上的 WSL 環境中執行時正確報告指標。docker/cli#5432
打包更新
- 將 containerd (僅靜態二進位檔) 更新至 v1.7.22 moby/moby#48468
- 將 Buildkit 更新至 v0.16.0
- 將 Compose 更新至 v2.29.6
- 將 Buildx 更新至 v0.17.1
27.2
Docker Engine 27.2 系列版本的發布資訊。
27.2.1
2024-09-09錯誤修正與增強功能
- containerd 映像檔儲存庫:修復非容器映像檔在
docker image ls輸出中被隱藏的問題。moby/moby#48402 - containerd 映像檔儲存庫:改善映像檔平台不符時
docker pull的錯誤訊息。moby/moby#48415 - CLI:修復
docker login未移除傳入登錄檔位址中的儲存庫名稱,導致憑證被存入錯誤金鑰的問題。docker/cli#5385 - CLI:修復若 CLI 程序在等待使用者驗證時被暫停隨後恢復,導致瀏覽器登入流程失敗的問題。docker/cli#5376
- CLI:
docker login若在非互動模式下以--password或--password-stdin呼叫但未提供--user,現在會返回錯誤而非掛起。docker/cli#5402
打包更新
- 將 runc 更新至 v1.1.14,此版本包含對 CVE-2024-45310 的修復。moby/moby#48426
- 將 Go 執行環境更新至 1.22.7。moby/moby#48433, docker/cli#5411, docker/docker-ce-packaging#1068
27.2.0
2024-08-27如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.2.0 里程碑
- moby/moby,27.2.0 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
新增功能
此版本的新功能包括:
裝置代碼登入
此版本新增了在驗證 Docker Hub 時使用裝置代碼登入的支援。
您仍然可以使用傳統的使用者名稱/密碼或存取權杖(access token)登入,但裝置代碼登入更安全,且無需在 CLI 中輸入密碼。


若要使用傳統方法,請使用 docker login -u <使用者名稱>。
docker image ls 的多平台支援
實驗性功能
此為實驗性功能,可能會隨時變更且不保證向後相容。在啟用 containerd 映像檔儲存庫後,docker image ls 指令(或 docker images 縮寫)現在支援 --tree 旗標,可顯示映像檔是否為多平台映像檔。
API
GET /images/json回應現在包含Manifests欄位,其中包含映像檔索引中子清單的相關資訊,包括平台特定清單和建構證明等。新欄位僅在請求同時設定
manifests查詢參數為true時才會被填入。實驗性功能
此為實驗性功能,可能會隨時變更且不保證向後相容。
錯誤修正與增強功能
- CLI:修復遠端 SSH 內容的問題,CLI 在連線至遠端主機時會分配偽終端(pseudo-TTY),這在極少數情況下會導致問題。docker/cli#5351
- 修復阻止網路建立在 64 位元邊界結束的
--ip-range的問題。moby/moby#48326 - CLI:
docker ps顯示在埠口繫結中的 IPv6 位址現在會加上括號。docker/cli#5365 - containerd 映像檔儲存庫:修復
docker load在解壓縮映像檔失敗時過早退出錯誤的問題。moby/moby#48376 - containerd 映像檔儲存庫:修復前一個映像檔在
docker pull後未能持久保存為懸空映像檔的問題。moby/moby#48380
打包更新
- 將 BuildKit 更新至 v0.15.2。moby/moby#48341
- 將 Compose 更新至 v2.29.2。docker/docker-ce-packaging#1050
- 將 containerd 更新至 v1.7.21。moby/moby#48383, docker/containerd-packaging#389
已知問題
- 在使用 Docker CLI (
docker login [登錄檔位址]) 對登錄檔進行驗證時有一個已知問題:如果提供的登錄檔位址包含儲存庫/映像檔名稱(例如docker login index.docker.io/docker/welcome-to-docker),則儲存庫部分(docker/welcome-to-docker)未被正規化,導致憑證以錯誤金鑰儲存,進而導致隨後的拉取操作(docker pull index.docker.io/docker/welcome-to-docker)無法通過驗證。為防止此情況,請在執行docker login時,不要在登錄檔位址中包含任何額外字尾。注意使用包含 URL 路徑片段的位址執行
docker login並非記錄在案的使用案例,且不予支援。建議用法是僅指定登錄檔主機名稱,並選擇性地加上埠口,作為docker login的位址。
27.1
Docker Engine 27.1 系列版本的發布資訊。
27.1.2
2024-08-13如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.1.2 里程碑
- moby/moby,27.1.2 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
錯誤修正與增強功能
- 修復從大型 Dockerfile 建構時可能導致
ResourceExhausted desc = grpc: received message larger than max錯誤的迴歸問題。moby/moby#48245 - CLI:修復
docker attach錯誤地列印context cancelled錯誤訊息的問題。docker/cli#5296 - CLI:修復
docker attach在SIGINT時退出,而非將訊號轉發至容器並等待其退出的問題。docker/cli#5302 - CLI:修復
--device-read-bps和--device-write-bps選項未生效的問題。docker/cli#5339 - CLI:修復執行插件時在某些情況下發生的崩潰。docker/cli#5337
打包更新
- 將 BuildKit 更新至 v0.15.1。moby/moby#48246
- 將 Buildx 更新至 v0.16.2。docker/docker-ce-packaging#1043
- 將 Go 執行環境更新至 1.21.13。moby/moby#48301, docker/cli#5325, docker/docker-ce-packaging#1046
- 從 Windows 套件中移除未使用的
docker-proxy.exe二進位檔。docker/docker-ce-packaging#1045
27.1.1
2024-07-23安全性
此版本包含對 CVE-2024-41110 / GHSA-v23v-6jw2-98fq 的修復,該漏洞影響使用 授權插件 (AuthZ) 進行存取控制的設定。此版本不包含其他變更,對於未使用 AuthZ 插件的使用者而言,此版本與之前版本相同。
打包更新
- 將 Compose 更新至 v2.29.1。moby/docker-ce-packaging#1041
27.1.0
2024-07-22如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.1.0 里程碑
- moby/moby,27.1.0 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
錯誤修正與增強功能
- rootless:新增
Requires=dbus.socket以防止在 systemd 的 cgroup v2 主機上啟動常駐程式時發生錯誤。moby/moby#48141 - containerd 整合:使用 BuildKit 建構映像檔時,現在會正確發出
image tag事件。moby/moby#48182 - CLI:啟用
docker image rm、docker image history和docker image inspect的 Shell 自動完成功能。moby/moby#5261 - CLI:新增並改善各項旗標的 Shell 自動完成功能。moby/moby#5261
- CLI:為
docker service create和docker stack新增 OOMScoreAdj。docker/cli#5274 - CLI:新增對
DOCKER_CUSTOM_HEADERS環境變數的支援(實驗性)。docker/cli#5271 - CLI:containerd 整合:修復在不支援的 API 版本上,
docker push將--platform旗標預設為DOCKER_DEFAULT_PLATFORM環境變數值的問題。docker/cli#5248 - CLI:修復
login提示時的情境取消問題。docker/cli#5260 - CLI:修復在連接至容器時發送終止請求至 CLI,會先等待容器退出後再關閉串流的問題。docker/cli#5250
已棄用
pkg/rootless/specconv套件已被廢棄,並將於下一個版本移除。moby/moby#48185pkg/containerfs套件已被廢棄,並將於下一個版本移除。moby/moby#48185pkg/directory套件已被廢棄,並將於下一個版本移除。moby/moby#48185api/types/system:移除已廢棄的Info.ExecutionDriver。moby/moby#48184
打包更新
- 將 Buildx 更新至 v0.16.1。moby/docker-ce-packaging#1039
- 將 Compose 更新至 v2.29.0。moby/docker-ce-packaging#1038
- 將 Containerd (僅靜態二進位檔) 更新至 v1.7.20。moby/moby#48191
- 將 BuildKit 更新至 v0.15.0。moby/moby#48175
- 將 Go 執行環境更新至 1.21.12,該版本包含對 CVE-2024-24791 的安全性修復。moby/moby#48120
27.0
Docker Engine 27.0 發布資訊。
27.0.3
2024-07-01如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.0.3 里程碑
- moby/moby,27.0.3 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
錯誤修正與增強功能
- 修復錯誤將從主機 IPv6 位址到僅 IPv4 容器的埠口映射回報為錯誤的迴歸問題。moby/moby#48090
- 修復導致建立網路時重複分配子網路的迴歸問題。moby/moby#48089
- 修復在系統支援使用者命名空間的原生 overlay 且啟用 rootless 模式時,嘗試拉取映像檔導致
fail to register layer: failed to Lchown錯誤的迴歸問題。moby/moby#48086
27.0.2
2024-06-27如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.0.2 里程碑
- moby/moby,27.0.2 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
錯誤修正與增強功能
- 修復解析 Docker 登錄檔 URL 時忽略埠號的迴歸問題。docker/cli#5197, docker/cli#5198
已移除
- api/types:廢棄
ContainerJSONBase.Node欄位和ContainerNode類型。這些定義曾被獨立(“經典”)Swarm API 使用,但從未在 Docker Engine 本身實作。moby/moby#48055
27.0.1
2024-06-24如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli,27.0.0 里程碑
- moby/moby,27.0.0 里程碑
- 關於廢棄與移除的功能,請參閱 Deprecated Features。
- 關於 Engine API 的變更,請參閱 API version history。
新增功能
- containerd 映像檔儲存庫:為
docker image push新增--platform旗標,並在並非所有多平台映像檔的平台都在本地可用時,改善其預設行為。docker/cli#4984, moby/moby#47679 - 為
docker stack deploy增設服務網路中driver_opts的支援。docker/cli#5125 - 在以
docker-為字首的名稱尋找使用者空間代理二進位檔時,將/usr/local/libexec和/usr/libexec路徑納入考量。moby/moby#47804
錯誤修正與增強功能
*client.Client執行個體現在保證在多個 goroutine 中並發使用時是安全的。先前,在使用WithAPIVersionNegotiation()選項時,可能會導致資料競爭。moby/moby#47961- 修復導致 Docker CLI 在某些情況下於
$TMPDIR中洩漏 Unix Socket 的錯誤。docker/cli#5146 - 在使用
--privileged時,不忽略自訂的 seccomp 設定檔。moby/moby#47500 - rootless:overlay2:在 Linux 核心 5.11 及更高版本中使用 rootless 模式時,支援原生 overlay diff。moby/moby#47605
- 修復健康檢查的
StartInterval預設值,使其反映記錄在案的 5 秒。moby/moby#47799 - 修復當使用者使用 Ctrl+C 取消操作時,
docker save和docker load在常駐程式端未終止的問題。moby/moby#47629 - 容器的
StartedAt屬性現在記錄於容器啟動前,保證StartedAt永遠早於FinishedAt。moby/moby#47003 - Windows 上 Windows 容器使用的內部 DNS 解析器現在預設將請求轉發至外部 DNS 伺服器,這使得
nslookup能夠解析外部主機名稱。此行為可透過daemon.json中的"features": { "windows-dns-proxy": false }來停用。此設定選項將於未來版本移除。moby/moby#47826 - 在 CLI 沒有權限讀取設定檔時列印警告。docker/cli#5077
- 修復容器連接時的 goroutine 和檔案描述符洩漏。moby/moby#45052
- 在常駐程式啟動期間清除所有已停止或已死亡容器的網路狀態。moby/moby#47984
- 以原子方式寫入磁碟區選項 JSON,以避免系統崩潰後出現「無效 JSON」錯誤。moby/moby#48034
- 允許具有相同父項的多個 macvlan 網路。moby/moby#47318
- 允許在宣告支援它的 Windows 常駐程式上使用 BuildKit。docker/cli#5178
網路
- 允許在容器建立和網路連線期間為每個介面設定 sysctl。moby/moby#47686
- 在未來版本中,這將是設定每個介面 sysctl 選項的唯一方式。例如在
docker run指令列中,--network mynet --sysctl net.ipv4.conf.eth0.log_martians=1將被拒絕。您必須改用--network name=mynet,driver-opt=com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1。
- 在未來版本中,這將是設定每個介面 sysctl 選項的唯一方式。例如在
IPv6
ip6tables不再是實驗性功能。若 IPv6 非其他功能所需,您可以移除experimental設定選項並繼續使用 IPv6。ip6tables現在預設為 Linux 橋接網路啟用。moby/moby#47747- 這使得 IPv4 和 IPv6 的行為保持一致,並降低了啟用 IPv6 的容器被意外暴露於網路的風險。
- 如果您以啟用
ip6tables(新預設值)的方式執行 Docker Engine,則不會受到影響。 - 如果您正在使用未啟用
ip6tables的 IPv6 橋接網路,這可能是一個破壞性變更。只有已發布的容器埠口(-p或--publish)可從 Docker 橋接網路外部存取,且外向連線會偽裝為主機。 - 若要還原先前版本無
ip6tables的行為,請在daemon.json中設定"ip6tables": false,或使用 CLI 選項--ip6tables=false。或者,保持啟用ip6tables、發布埠口並啟用直接路由。 - 在啟用
ip6tables的情況下,如果ip6tables在您的主機上無法運作,Docker Engine 將啟動,但無法建立支援 IPv6 的網路。
IPv6 網路配置改進
- 如果未手動設定
default-address-pools,或其中不包含 IPv6 首碼,則會自動新增唯一本地位址 (ULA) 的基本首碼。moby/moby#47853- 在此版本之前,若要建立 IPv6 網路,必須使用
--subnet選項指定 IPv6 子網路,或將 IPv6 範圍加入daemon.json中的default-address-pools。 - 從此版本開始,當使用
--ipv6建立橋接網路且未透過選項定義 IPv6 子網路時,將使用 IPv6 唯一本地位址 (ULA) 基本首碼。 - ULA 首碼衍生自 Engine 主機識別碼,以確保其在不同主機間及隨時間推移保持唯一。
- 在此版本之前,若要建立 IPv6 網路,必須使用
- 現在可將任意大小的 IPv6 位址集區加入
default-address-pools。moby/moby#47768 - 現在可透過在
daemon.json中設定"default-network-opts": { "bridge": {"com.docker.network.enable_ipv6": "true"}},或在指令列使用dockerd --default-network-opt=bridge=com.docker.network.enable_ipv6=true,為所有自訂橋接網路預設啟用 IPv6。moby/moby#47867 - 在啟用
ip6tables的情況下,IPv6 網路的直接路由。moby/moby#47871- 新增橋接驅動程式選項
com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>。 - 預設行為
nat與先前啟用ip6tables的版本一致,將為每個已發布的容器埠口設定 NAT 和偽裝規則。 - 當設定為
routed時,不會為已發布埠口配置 NAT 或偽裝規則。若主機網路能將封包路由至容器位址,則啟用容器的直接 IPv6 存取。已發布埠口將在容器防火牆中開啟。 - 當埠口對映僅適用於
routed模式時,只允許0.0.0.0或::位址,且不得指定主機埠口。 - 請注意,在
nat或routed模式下,若網路上已設定路由,已發布的容器埠口可從任何遠端位址存取,除非 Docker 主機的防火牆有額外限制。例如:docker network create --ipv6 -o com.docker.network.bridge.gateway_mode_ipv6=routed mynet。 - 選項
com.docker.network.bridge.gateway_mode_ipv4=<nat|routed>同樣可用,且行為相同,但針對 IPv4。
- 新增橋接驅動程式選項
- 若主機上正在執行 firewalld,Docker 會建立
docker-forwarding策略以允許從任何區域轉發至docker區域。這使得配置具有可路由 IPv6 位址且無 NAT 或偽裝的橋接網路成為可能。moby/moby#47745 - 當發布埠口且未指定主機埠口,或給定主機埠口範圍時,將為 IPv4 和 IPv6 分配相同的埠口。moby/moby#47871
- 例如,
-p 80將導致為0.0.0.0和::分配相同的臨時埠口,而-p 8080-8083:80將從範圍中為兩種位址系列挑選相同的埠口。 - 同樣地,發布至特定位址的埠口將被分配相同的埠口。例如,
-p 127.0.0.1::80 -p '[::1]::80'。 - 如果所有必需位址上都沒有可用埠口,容器建立將失敗。
- 例如,
- 環境變數
DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE(於 26.1.1 版本引入)不再有任何作用。moby/moby#47963- 先前,若因唯讀
/proc/sys/net而無法在介面上停用 IPv6,該環境變數允許容器仍能啟動。 - 在此版本中,若無法為介面停用 IPv4,可僅透過建立網路時使用
--ipv6明確為網路啟用 IPv6。其他替代方案包括將 OS 設定為預設在新介面上停用 IPv6、掛載讀寫權限的/proc/sys/net,或使用無 IPv6 支援的核心。
- 先前,若因唯讀
- 對於已啟用 IPv6 的橋接網路,不要嘗試以
fe80::1取代橋接器核心分配的連結本地位址。moby/moby#47787
已移除
- 廢棄實驗性 GraphDriver 插件。moby/moby#48050, docker/cli#5172
- pkg/archive:廢棄
NewTempArchive和TempArchive。這些類型僅用於測試,將於下一個版本移除。moby/moby#48002 - pkg/archive:廢棄
CanonicalTarNameForPath。moby/moby#48001 - 廢棄 pkg/dmesg。此套件已不再使用,將於下一個版本移除。moby/moby#47999
- 廢棄
pkg/stringid.ValidateID和pkg/stringid.IsShortID。moby/moby#47995 - runconfig:廢棄
SetDefaultNetModeIfBlank並將ContainerConfigWrapper移至api/types/container。moby/moby#48007 - runconfig:廢棄
DefaultDaemonNetworkMode並移至daemon/network。moby/moby#48008 - runconfig:廢棄
opts.ConvertKVStringsToMap。此工具已不再使用,將於下一個版本移除。moby/moby#48016 - runconfig:廢棄
IsPreDefinedNetwork。moby/moby#48011
API
- containerd 映像檔儲存庫:
POST /images/{name}/push現在支援platform參數(JSON 編碼的 OCI Platform 類型),允許從多平台映像檔中選取特定平台清單。這是實驗性功能,未來 API 版本可能會變更。moby/moby#47679 POST /services/create和POST /services/{id}/update現在支援OomScoreAdj。moby/moby#47950ContainerListAPI 現在返回容器註釋(annotations)。moby/moby#47866POST /containers/create和POST /services/create現在將Options作為HostConfig.Mounts.TmpfsOptions的一部分,允許為 tmpfs 掛載設定選項。moby/moby#46809- 使用小於 v1.44 的 API 版本更新 Swarm 服務時,
Healthcheck.StartInterval屬性現在會被正確忽略。moby/moby#47991 GET /events現在支援映像檔create事件,該事件在建構新映像檔時發出,無論是否已標記。moby/moby#47929GET /info現在包含一個Containerd欄位,其中包含有關 containerd API socket 位置的資訊,以及常駐程式用來執行容器和插件的 containerd 命名空間。moby/moby#47239- 廢棄映像檔檢查輸出中的非標準 (config) 欄位。此端點回傳的
Config欄位(用於docker image inspect)先前返回了額外欄位,這些欄位並非 Docker Image Spec 和 OCI Image Spec 的一部分。這些欄位永遠不會被設定(且總是返回該類型的預設值),但在留空時並未從回應中省略。由於這些欄位不屬於映像檔配置回應,因此已被廢棄,將於未來的 API 版本中移除。 - 廢棄常駐程式旗標
--api-cors-header及對應的daemon.json設定選項。這些將於下一個主要版本中移除。moby/moby#45313
以下已廢棄欄位目前包含在 API 回應中,但不屬於底層映像檔的 Config:moby/moby#47941
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(除非已設定,否則已省略)MacAddress(除非已設定,否則已省略)StopTimeout(除非已設定,否則已省略)
Go SDK 變更
- 以下函數的 Client API 回呼現在需要 context 參數。moby/moby#47536
client.RequestPrivilegeFuncclient.ImageSearchOptions.AcceptPermissionsFuncimage.ImportOptions.PrivilegeFunc
- 移除已廢棄的 Image 類型別名。moby/moby#47900
ImageImportOptionsImageCreateOptionsImagePullOptionsImagePushOptionsImageListOptionsImageRemoveOptions
- 為
github.com/docker/go-units.Ulimit引入Ulimit類型別名。API 中使用的Ulimit類型定義在一個未來將過渡至新位置的 Go 模組中。引入類型別名是為了減少因移動類型位置而帶來的摩擦。別名確保現有程式碼繼續運作,但其定義在未來可能會變更。建議使用者改用此別名,而非直接使用units.Ulimit。moby/moby#48023
移動並重新命名類型,變更其匯入路徑與導出名稱。moby/moby#47936, moby/moby#47873, moby/moby#47887, moby/moby#47882, moby/moby#47921, moby/moby#48040
- 將以下類型移至
api/types/containerBlkioStatEntryBlkioStatsCPUStatsCPUUsageContainerExecInspectContainerPathStatContainerStatsContainersPruneReportCopyToContainerOptionsExecConfigExecStartCheckMemoryStatsNetworkStatsPidsStatsStatsJSONStatsStorageStatsThrottlingData
- 將以下類型移至
api/types/imageImagesPruneReportImageImportSourceImageLoadResponse
- 將
ExecStartOptions類型移至api/types/backend。 - 將
VolumesPruneReport類型移至api/types/volume。 - 將
EventsOptions類型移至api/types/events。 - 將
ImageSearchOptions類型移至api/types/registry。 - 移除
Network前綴並將以下類型移至api/types/networkNetworkCreateResponseNetworkConnectNetworkDisconnectNetworkInspectOptionsEndpointResourceNetworkListOptionsNetworkCreateOptionsNetworkCreateRequestNetworksPruneReport
- 將
NetworkResource移至api/types/network。
打包更新
- 將 Buildx 更新至 v0.15.1。docker/docker-ce-packaging#1029
- 將 BuildKit 更新至 v0.14.1。moby/moby#48028
- 將 runc 更新至 v1.1.13 moby/moby#47976
- 將 Compose 更新至 v2.28.1。moby/docker-ce-packaging#1032
27.0.0
GitHub 上 v27.0.0-rc.1 的預發布過程中發生錯誤,導致 v27.0.0 標籤被建立,因此沒有 27.0.0 正式版。不幸的是,該標籤已被 Go Module Mirror 獲取,因此無法乾淨地更改 v27.0.0。為了解決此問題,27.0.1 將成為 27.0 的第一個版本。