Docker Engine 28 版本發行說明
此頁面描述 Docker Engine 28 版本的最新變更、新增功能、已知問題與修復內容。
欲瞭解更多資訊關於
- 已棄用和已移除的功能,請參閱 已棄用的 Engine 功能。
- Engine API 的變更,請參閱 Engine API 版本歷史記錄。
28.4.0
2025-09-03如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
新增功能
- 允許 Docker CLI 在 docker context 元數據中存在鍵值對 (
"GODEBUG":"...") 時,設定GODEBUG環境變數。docker/cli#6399
錯誤修正與增強功能
- 新增
docker pull和docker image pull的 Shell 自動補全功能。docker/cli#6420 - 修復 v28.3.3 中的一個迴歸問題,若客戶端未發送
X-Registry-Auth標頭,可能導致docker push發生 panic。moby/moby#50738 - Windows:可能修復了拉取映像時出現「拒絕存取」(access denied) 錯誤的問題。moby/moby#50871
- containerd 映像儲存庫:修復對本地建置的非原生映像呼叫
docker history時,因snapshot X does not exist而失敗的問題。moby/moby#50875 - containerd 映像儲存庫:修復
docker image prune,使其發出正確的untag和delete事件,並僅列出已刪除映像的根摘要 (root digests) 而非每個 blob。moby/moby#50837 - 移除因驗證失敗導致
docker push和docker pull後出現的互動式登入提示。docker/cli#6256
打包更新
- 將 BuildKit 更新至 v0.24.0。moby#50888
- 將 Go 執行時期更新至 1.24.7。moby/moby#50889, docker/cli#6422
- 將
runc更新至 v1.3.0。moby/moby#50699 - 將 containerd(僅限靜態二進位檔案)更新至 v1.7.28。moby/moby#50700
網路
- 修復可能導致在即時還原 (live-restore) 時容器重新啟動緩慢的問題。moby/moby#50829
API
- 更新
AuthConfig.Email欄位的棄用訊息。moby/moby#50797
Go SDK
- 棄用已遷移至 github.com/moby/profiles 的 profiles 套件。moby/moby#50513
棄用項目
- 棄用對
--tlscacert、--tlscert和--tlskey命令列旗標引號值的特殊處理。docker/cli#6291 - 將舊版連結環境變數 (
DOCKER_KEEP_DEPRECATED_LEGACY_LINKS_ENV_VARS) 在 v28.4 標記為已棄用,並預計於 v30.0 移除。docker/cli#6309 - Go-SDK:棄用
NetworkSettingsBase.Bridge欄位、NetworkSettingsBase結構,以及DefaultNetworkSettings的所有欄位和DefaultNetworkSettings結構。moby/moby#50839 - Go-SDK:api/types:
build.CacheDiskUsage、container.DiskUsage、images.DiskUsage和volumes.DiskUsage現已棄用,並將於下一個主要版本中移除。moby/moby#50768 - Go-SDK:cli-plugins/manager:棄用
ReexecEnvvar。docker/cli#6411 - Go-SDK:cli-plugins/manager:棄用註釋別名(
CommandAnnotationPlugin、CommandAnnotationPluginVendor、CommandAnnotationPluginVersion、CommandAnnotationPluginInvalid、CommandAnnotationPluginCommandPath),改用cli-plugins/manager/metadata中的對應項目。docker/cli#6298 - Go-SDK:cli-plugins/manager:棄多元數據別名(
NamePrefix、MetadataSubcommandName、HookSubcommandName、Metadata、ReexecEnvvar),改用cli-plugins/manager/metadata中的對應項目。docker/cli#6269 - Go-SDK:cli-plugins/manager:移除僅供內部使用的
Candidate介面。docker/cli#6269 - Go-SDK:cli-plugins/manager:移除僅供內部使用的
NewPluginError函數。docker/cli#6269 - Go-SDK:cli-plugins/manager:移除已棄用的
ResourceAttributesEnvvar常數。docker/cli#6269 - Go-SDK:cli/command/builder:棄用
NewBuilderCommand和NewBakeStubCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/builder:棄用
NewPruneCommand。docker/cli#6343 - Go-SDK:cli/command/checkpoint:棄用
NewCheckpointCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/checkpoint:棄用
NewFormat、FormatWrite。docker/cli#6341 - Go-SDK:cli/command/completion:棄用
NoComplete。docker/cli#6405 - Go-SDK:cli/command/completion:移除已棄用的
ValidArgsFn。docker/cli#6259 - Go-SDK:cli/command/config:棄用
NewConfigCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/config:棄用
NewFormat、FormatWrite、InspectFormatWrite。docker/cli#6341 - Go-SDK:cli/command/config:棄用
RunConfigCreate、CreateOptions、RunConfigInspect、InspectOptions、RunConfigList、ListOptions、RunConfigRemove和RemoveOptions。docker/cli#6369 - Go-SDK:cli/command/container:棄用
NewBuildCommand、NewPullCommand、NewPushCommand、NewImagesCommand、NewImageCommand、NewHistoryCommand、NewImportCommand、NewLoadCommand、NewRemoveCommand、NewSaveCommand、NewTagCommand、NewPruneCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/container:棄用
NewDiffFormat、DiffFormatWrite。這些函數僅供內部使用,將於下一個版本移除。docker/cli#6341 - Go-SDK:cli/command/container:棄用
NewRunCommand、NewExecCommand、NewPsCommand、NewContainerCommand、NewAttachCommand、NewCommitCommand、NewCopyCommand、NewCreateCommand、NewDiffCommand、NewExportCommand、NewKillCommand、NewLogsCommand、NewPauseCommand、NewPortCommand、NewRenameCommand、NewRestartCommand、NewRmCommand、NewStartCommand、NewStatsCommand、NewStopCommand、NewTopCommand、NewUnpauseCommand、NewUpdateCommand、NewWaitCommand、NewPruneCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/context:棄用
NewContextCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/context:棄用
RunCreate和CreateOptions。docker/cli#6403 - Go-SDK:cli/command/context:棄用
RunExport和ExportOptions。docker/cli#6403 - Go-SDK:cli/command/context:棄用
RunImport。docker/cli#6403 - Go-SDK:cli/command/context:棄用
RunRemove和RemoveOptions。docker/cli#6403 - Go-SDK:cli/command/context:棄用
RunUpdate和UpdateOptions。docker/cli#6403 - Go-SDK:cli/command/context:棄用
RunUse。docker/cli#6403 - Go-SDK:cli/command/image:棄用
AuthResolver工具。docker/cli#6357 - Go-SDK:cli/command/image:棄用
NewHistoryFormat、HistoryWrite。docker/cli#6341, docker/cli#6341 - Go-SDK:cli/command/manifest:棄用
NewManifestCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/network:棄用
NewFormat、FormatWrite。docker/cli#6341 - Go-SDK:cli/command/network:棄用
NewNetworkCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/node:棄用
NewFormat、FormatWrite、InspectFormatWrite。docker/cli#6341 - Go-SDK:cli/command/node:棄用
NewNodeCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/plugin:棄用
NewFormat、FormatWrite。docker/cli#6341 - Go-SDK:cli/command/plugin:棄用
NewPluginCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/registry:棄用
NewLoginCommand、NewLogoutCommand、NewSearchCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/registry:棄用
NewSearchFormat、SearchWrite。docker/cli#6341 - Go-SDK:cli/command/registry:棄用
OauthLoginEscapeHatchEnvVar常數。docker/cli#6413 - Go-SDK:cli/command/secret:棄用
NewFormat、FormatWrite、InspectFormatWrite。docker/cli#6341 - Go-SDK:cli/command/secret:棄用
NewSecretCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/service:棄用
NewFormat、InspectFormatWrite。docker/cli#6341 - Go-SDK:cli/command/service:棄用
NewServiceCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/stack:棄用
NewStackCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/stack:棄用
RunList、RunServices。docker/cli#6391 - Go-SDK:cli/command/swarm:棄用
NewSwarmCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/system:棄用
NewVersionCommand、NewInfoCommand、NewSystemCommand、NewEventsCommand、NewInspectCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/task:棄用
NewTaskFormat、FormatWrite。docker/cli#6341 - Go-SDK:cli/command/trust:棄用
NewTrustCommand。此函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command/trust:棄用
SignedTagInfo、SignerInfo、NewTrustTagFormat、NewSignerInfoFormat、TagWrite、SignerInfoWrite。docker/cli#6341 - Go-SDK:cli/command/volume:棄用
NewVolumeCommand、NewPruneCommand。這些函數將於下一個版本移除。docker/cli#6312 - Go-SDK:cli/command:移除僅供內部使用的
AddTrustSigningFlags、AddTrustVerificationFlags和AddPlatformFlag工具。docker/cli#6311 - Go-SDK:cli/command:移除已棄用的
ConfigureAuth工具。docker/cli#6257 - Go-SDK:cli/command:移除已棄用的
CopyToFile工具。docker/cli#6257 - Go-SDK:cli/config/types:更新
AuthConfig.Email欄位的棄用訊息。docker/cli#6392 - Go-SDK:cli:棄用
VisitAll、DisableFlagsInUseLine工具。這些工具僅供內部使用,將於下一個版本移除。docker/cli#6276 - Go-SDK:cli:移除僅供內部使用的
HasCompletionArg工具。docker/cli#6276 - Go-SDK:棄用
cli/command.RegistryAuthenticationPrivilegedFunc。docker/cli#6256 - Go-SDK:棄用
cli/command/stack/formatter。docker/cli#6391 - Go-SDK:棄用
cli/command/stack/loader。docker/cli#6391 - Go-SDK:棄用
cli/command/stack/options。docker/cli#6391 - Go-SDK:棄用
cli/command/stack/swarm。docker/cli#6391 - Go-SDK:opts:棄用
NewNamedListOptsRef、NewNamedMapOpts、NamedListOpts、NamedMapOpts和NamedOption。這些型別與函數已不再使用,將於下一個版本移除。docker/cli#6292 - Go-SDK:opts:棄用
ParseEnvFile,改用kvfile.Parse。docker/cli#6381 - Go-SDK:opts:棄用
QuotedString。此工具已不再使用,將於下一個版本移除。docker/cli#6275 - Go-SDK:opts:棄用
ValidateHost工具。此函數已不再使用,將於下一個版本移除。docker/cli#6280 - Go-SDK:pkg/jsonmessage:棄用
JSONMessage.From、JSONMessage.Time和JSONMessage.TimeNano欄位,因為 API 不再為進度訊息回傳這些欄位。請改用events.Message型別來解組 (unmarshal)/events回應。moby/moby#50762 - Go-SDK:cli/registry/client 套件已棄用,將於下一個版本移除。docker/cli#6313
28.3.3
2025-07-29如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
安全性
此版本修復了一個問題:在重新載入 firewalld 後,已發布的容器連接埠即使原本設定為僅透過迴路位址 (loopback address) 存取,仍可直接從本機網路存取。CVE-2025-54388 / GHSA-x4rx-4gw3-53p4 / moby/moby#50506。
打包更新
- 將 Buildx 更新至 v0.26.1。docker/docker-ce-packaging#1230
- 將 Compose 更新至 v2.39.1。docker/docker-ce-packaging#1234
- 將 Docker Model CLI 外掛程式更新至 v0.1.36。docker/docker-ce-packaging#1233
28.3.2
2025-07-09如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復鎖定遠端 daemon 時
--use-api-socket無法正確運作的問題。docker/cli#6157 - 修復啟用除錯日誌時,會印出無謂「otel error」日誌的問題。docker/cli#6160
- 透過 SSH 連線至遠端 daemon 時,為 SSH 引數加上引號,以避免非預期的展開。docker/cli#6147
- 當執行
docker login和docker logout且已設定DOCKER_AUTH_CONFIG時發出警告。docker/cli#6163
打包更新
- 將 Compose 更新至 v2.38.2。docker/docker-ce-packaging#1225
- 將 Docker Model CLI 外掛程式更新至 v0.1.33。docker/docker-ce-packaging#1227
- 將 Go 執行時期更新至 1.24.5。moby/moby#50354
28.3.1
2025-07-02如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
打包更新
- 將 BuildKit 更新至 v0.23.2。moby/moby#50309
- 將 Compose 更新至 v2.38.1。docker/docker-ce-packaging#1221
- 將 Model 更新至 v0.1.32,新增對 Docker Compose 中新頂層
models:鍵的支援。docker/docker-ce-packaging#1222
28.3.0
2025-06-24如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
新增功能
- 新增對
docker run --gpus中 AMD GPU 的支援。moby/moby#49952 - 將
DOCKER_AUTH_CONFIG用作憑證儲存庫。docker/cli#6008
錯誤修正與增強功能
- 確保當使用 /containers/{id}/stop API 停止容器時(在 API 回應之前),daemon 資料庫中的容器狀態(由 /containers/json API 使用)是最新的。moby/moby#50136
- 修復
docker image inspect省略空欄位的問題。moby/moby#50135 - 修復停用 containerd 映像儲存庫時,
docker images --tree未將映像標記為使用中的問題。docker/cli#6140 - 修復在需要驗證時,非互動模式下因提示輸入登入憑證而導致
docker pull/push卡住的問題。docker/cli#6141 - 修復節點離開 Swarm 時潛在的資源洩漏問題。moby/moby#50115
- 修復登入其他登錄檔 (registries) 時,
docker pull的登入提示會顯示 Docker Hub 特定提示的迴歸問題。docker/cli#6135 - 修復在增加具有放置偏好 (placement preferences) 的服務規模後,Swarm 中的所有新任務可能永久卡在 PENDING 狀態的問題。moby/moby#50211
- 移除 Docker 23.0 中意外引入的一個未記錄、隱藏的頂層
docker remove命令。docker/cli#6144 - 在
dockerd --validate中驗證 registry-mirrors 設定,並改進無效鏡像的錯誤訊息。moby/moby#50240 dockerd-rootless-setuptool.sh:修復當 subuid/subgid 系統需求未滿足時,腳本默默返回且無錯誤訊息的問題。moby/moby#50059- containerd 映像儲存庫:修復
docker push未在遠端儲存庫建立標籤的問題。moby/moby#50199 - containerd 映像儲存庫:改進
docker pull/push期間 token 伺服器回傳錯誤的處理方式。moby/moby#50176
打包更新
- 允許自訂 OpenRC 的 containerd 服務名稱。moby/moby#50156
- 將 BuildKit 更新至 v0.23.1。moby/moby#50243
- 將 Buildx 更新至 v0.25.0。docker/docker-ce-packaging#1217
- 將 Compose 更新至 v2.37.2。docker/docker-ce-packaging#1219
- 將 Docker Model CLI 外掛程式更新至 v0.1.30。docker/docker-ce-packaging#1218
- 將 Go 執行時期更新至 1.24.4。docker/docker-ce-packaging#1213, moby/moby#50153, docker/cli#6124
網路
- 撤銷在 28.2.x 版本中加入與 Swarm 相關的變更,原因是在 https://github.com/moby/moby/issues/50129 回報的迴歸問題。moby/moby#50169
- 撤銷:修復
docker network inspect --verbose有時可能導致 daemon 當機的問題 (https://github.com/moby/moby/pull/49937)。 - 撤銷:修復覆蓋網路 (overlay network) 的負載平衡器 IP 位址在 Swarm 缺乏 ingress 網路的情況下,某些情況無法釋放的問題 (https://github.com/moby/moby/pull/49948)。
- 撤銷:提高 NetworkDB 在繁忙叢集與高損耗網路中的可靠性 (https://github.com/moby/moby/pull/49932)。
- 撤銷:改進 NetworkDB 的可靠性與收斂速度 (https://github.com/moby/moby/pull/49939)。
- 撤銷:修復
- 修復當部分容器連接埠對應到
0.0.0.0而其他對應到特定主機位址時,可能導致容器啟動失敗或 UDP 連接埠對應失敗的問題。moby/moby#50054 - 覆蓋網路的
network inspect回應現在會回報EnableIPv4為 true。moby/moby#50147 - Windows:改進主機具有
"Mirrored"型別網路時的 daemon 啟動時間。moby/moby#50155 - Windows:確保
docker system prune和docker network prune僅移除由 Docker 建立的網路。moby/moby#50154
API
- 將 API 版本更新至 1.51。moby/moby#50145
GET /images/json現在將所有映像的Containers欄位值設定為使用該映像的容器計數。moby/moby#50146
棄用項目
GET /images/{name}/json回應中的空白/nil 映像設定欄位現已棄用,將於 v29.0 移除。docker/cli#6129- api/types/container:棄用
ExecOptions.Detach。此欄位未使用,將於未來的版本中移除。moby/moby#50219 - pkg/idtools:棄用
IdentityMapping和Identity.Chown。moby/moby#50210
28.2.2
2025-05-30如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- containerd 映像儲存庫:修復導致
docker build --push失敗的迴歸問題。此修復撤銷了對docker build未將覆寫映像保存為懸空 (dangling) 映像的修正。moby/moby#50105
網路
- 在建立 iptables
DOCKER-USER鏈時,不再加入明確的RETURN規則,允許使用者追加或插入自己的規則。升級時不會移除現有規則,但在重新啟動後不會再被取代。moby/moby#50098
28.2.1
2025-05-29打包更新
- 修復 v28.2.0 中的封裝迴歸問題,該問題破壞了全新安裝時建立
docker群組/使用者的功能。docker-ce-packaging#1209
28.2.0
2025-05-28如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
注意RHEL 套件目前無法使用,將於稍後發布。
新增功能
- 新增
{{.Platform}}作為docker ps的格式化選項,以顯示容器執行之映像的平台。docker/cli#6042 - 新增當使用
docker run/create搭配-v/--volume或--mount type=bind選項時,對掛載來源 (bind mount sources) 使用相對父路徑 (../) 的支援。docker/cli#4966 - CDI 現已預設啟用。moby/moby#49963
- 在
docker info中顯示已發現的 CDI 裝置。docker/cli#6078 docker image rm:新增--platform選項,以移除多平台映像中的變體。docker/cli#6109- containerd 映像儲存庫:初步支援在 Windows 上使用 BuildKit 建置 Windows 容器映像(需要使用
DOCKER_BUILDKIT=1選擇性加入)。moby/moby#49740
錯誤修正與增強功能
- 為 fluentd 日誌驅動程式新增一個日誌選項 (
fluentd-write-timeout),允許為 fluentd 連線指定寫入逾時。moby/moby#49911 - 新增對實驗性
--use-api-socket選項的DOCKER_AUTH_CONFIG支援。docker/cli#6019 - 修復若指定不存在的使用者或群組時,
docker exec會等待 10 秒的問題。moby/moby#49868 - 修復
docker swarm init忽略--external-ca的cacert選項的問題。docker/cli#5995 - 修復若設定檔 (
~/.docker/config.json) 為相對符號連結時,CLI 無法正確儲存的問題。docker/cli#5282 - 修復具有
--restart always策略且使用 CDI 裝置的容器在 daemon 重啟後無法啟動的問題。moby/moby#49990 - 修復 Shell 自動補全,即使旗標可以設定多次,也只補全一次的問題。docker/cli#6030
- 修復 Swarm CSI 驅動程式出現
plugin does not implement PluginAddr interface錯誤的問題。moby/moby#49961 - 改進
docker login對無效選項的錯誤訊息。docker/cli#6036 - 確保在 CLI 被強制終止時還原終端狀態。docker/cli#6058
- 將預設 seccomp 設定檔更新至 libseccomp v2.6.0。新增的系統呼叫包括:
listmount、statmount、lsm_get_self_attr、lsm_list_modules、lsm_set_self_attr、mseal、uretprobe、riscv_hwprobe、getxattrat、listxattrat、removexattrat和setxattrat。這可防止容器在使用這些呼叫時收到 EPERM 錯誤。moby/moby#50077 docker inspect:新增 Shell 自動補全,改進--type的旗標說明並改進驗證。docker/cli#6052- containerd 映像儲存庫:預設啟用 BuildKit 垃圾回收。moby/moby#49899
- containerd 映像儲存庫:修復
docker build未將覆寫映像保存為懸空映像的問題。moby/moby#49702 - containerd 映像儲存庫:修復
docker system df回報負值可回收空間的問題。moby/moby#49707 - containerd 映像儲存庫:修復推送多平台映像時發出重複
PUT請求的問題。moby/moby#49949
打包更新
- 放棄 Ubuntu 20.04 "Focal" 套件,因為該版本已達生命週期終點。docker/docker-ce-packaging#1200
- 修復基於 RPM 的
docker-ce手冊頁 (man-pages) 安裝路徑。docker/docker-ce-packaging#1203 - 將 BuildKit 更新至 v0.22.0。moby/moby#50046
- 將 Buildx 更新至 v0.24.0。docker/docker-ce-packaging#1205
- 將 Compose 更新至 v2.36.2。docker/docker-ce-packaging#1208
- 將 Go 執行時期更新至 1.24.3。docker/docker-ce-packaging#1192, docker/cli#6060, moby/moby#49174
網路
- 新增橋接網路選項
"com.docker.network.bridge.trusted_host_interfaces",接受以冒號分隔的介面名稱清單。這些介面可以直接存取容器 IP 位址上的已發布連接埠。moby/moby#49832 - 新增 daemon 選項
"allow-direct-routing",以停用過濾來自主機外部並直接傳往容器的封包。moby/moby#49832 - 若網路建立請求中已透過
EnableIPv4或EnableIPv6覆寫,則在 inspect 輸出中不顯示網路選項com.docker.network.enable_ipv4或com.docker.network.enable_ipv6。moby/moby#49866 - 修復 daemon 重啟後網路刪除可能失敗的問題,錯誤訊息為「has active endpoints」且列出的端點名稱為空白。moby/moby#49901
- 修復
docker network inspect --verbose有時可能導致 daemon 當機的問題。moby/moby#49937 - 修復覆蓋網路的負載平衡器 IP 位址在 Swarm 缺乏 ingress 網路的情況下,某些情況無法釋放的問題。moby/moby#49948
- 提高 NetworkDB 在繁忙叢集與高損耗網路中的可靠性。moby/moby#49932
- 改進 NetworkDB 的可靠性與收斂速度。moby/moby#49939
API
DELETE /images/{name}現在支援platforms查詢參數。它接受一個 JSON 編碼的 OCI 平台物件陣列,允許選擇特定平台來刪除內容。moby/moby#49982GET /info現在包含DiscoveredDevices欄位。這是一個DeviceInfo物件陣列,每個物件提供有關由裝置驅動程式發現的裝置詳細資訊。moby/moby#49980
Go SDK
api/types/container:新增ContainerState及容器狀態常數。moby/moby#49965api/types/container:將Summary.State變更為ContainerState。moby/moby#49991api/types/container:為健康狀態常數定義HealthStatus型別。moby/moby#49876api/types:棄用BuildResult、ImageBuildOptions、ImageBuildOutput、ImageBuildResponse、BuilderVersion、BuilderV1和BuilderBuildKi,這些已遷移至api/types/build。moby/moby#50025
棄用項目
- API:已棄用:
GET /images/{name}/json不再回傳以下欄位:Config、Hostname、Domainname、AttachStdin、AttachStdout、AttachStderr、Tty、OpenStdin、StdinOnce、Image、NetworkDisabled(除非已設定,否則已省略)、MacAddress(除非已設定,否則已省略)、StopTimeout(除非已設定,否則已省略)。這些額外欄位因實作細節而包含在回應中,但並非映像設定的一部分,已在 API v1.46 中標記為棄用,現在已省略。moby/moby#48457 - Go-SDK:棄用 builder/remotecontext.Rel()。此函數在舊版 Go 中是必要的,但現在可以由
filepath.Rel()取代。moby/moby#49843 - Go-SDK:api/types:棄用
BuildCachePruneOptions,改用api/types/builder.CachePruneOptions。moby/moby#50015 - Go-SDK:api/types:棄用
BuildCachePruneReport,改用api/types/builder.CachePruneReport。moby/moby#50015 - Go-SDK:api/types:棄用
NodeListOptions、NodeRemoveOptions、ServiceCreateOptions、ServiceUpdateOptions、RegistryAuthFromSpec、RegistryAuthFromPreviousSpec、ServiceListOptions、ServiceInspectOptions和SwarmUnlockKeyResponse,這些已遷移至api/types/swarm。moby/moby#50027 - Go-SDK:api/types:棄用
SecretCreateResponse、SecretListOptions、ConfigCreateResponse、ConfigListOptions,這些已遷移至 api/types/swarm。moby/moby#50024 - Go-SDK:client:棄用
IsErrNotFound。moby/moby#50012 - Go-SDK:container:棄用
IsValidHealthString,改用api/types/container.ValidateHealthStatus。moby/moby#49893 - Go-SDK:container:棄用
StateStatus、WaitCondition及相關的WaitConditionNotRunning、WaitConditionNextExit和WaitConditionRemoved常數,改用api/types/container中的對應項目。moby/moby#49874 - Go-SDK:opts:棄用
ListOpts.GetAll,改用ListOpts.GetSlice。docker/cli#6032 - 從
docker search中移除已棄用的IsAutomated格式化佔位符。docker/cli#6091 - 移除從非 OCI 相容的
docker.pkg.github.com登錄檔拉取映像的後備機制。moby/moby#50094 - 移除對拉取舊版 v2, schema 1 映像的支援,並移除
DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE環境變數。moby/moby#50036, moby/moby#42300 GET /info回應中的BridgeNfIptables和BridgeNfIp6tables欄位已在 API v1.48 中棄用,現在於 API v1.50 中省略。moby/moby#49904- errdefs:棄用
errdefs.FromStatusCode。請改用 containerd 的errhttp.ToNative。moby/moby#50030
28.1.1
2025-04-18如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復
dockerd-rootless-setuptool.sh錯誤回報遺失iptables的問題。moby/moby#49833 - containerd 映像儲存庫:修復使用包含零大小 tar 標頭的壓縮檔執行
docker load時可能導致的 daemon 當機問題。moby/moby#49837
打包更新
- 將 Buildx 更新至 v0.23.0。docker/docker-ce-packaging#1185
- 將 Compose 更新至 v2.35.1。docker/docker-ce-packaging#1188
網路
- 當找不到上游 DNS 伺服器時,向容器的
/etc/resolv.conf新增警告。moby/moby#49827
28.1.0
2025-04-17如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
新增功能
- 新增
docker bake子命令作為docker buildx bake的別名。docker/cli#5947 - 實驗性:在
docker run和docker create上新增一個新的--use-api-socket旗標,以啟用從容器內存取 Docker socket,並與容器分享來自主機的憑證。docker/cli#5858 docker image inspect現在支援--platform旗標,以檢查多平台映像的特定平台。docker/cli#5934
錯誤修正與增強功能
- 新增 context 名稱的 CLI Shell 自動補全。docker/cli#6016
- 修復
docker images --tree在計算總映像內容大小時,未包含非容器映像內容大小的問題。docker/cli#6000 - 修復
docker load未能保留已取代映像的問題。moby/moby#49650 - 修復登入自訂登錄檔時的
docker login提示。docker/cli#6015 - 修復
docker stats在 CPU 核心數較高的機器上無法正常運作的問題。moby/moby#49734 - 修復與私有儲存庫互動時導致
docker pull/push失敗的迴歸問題。docker/cli#5964 - 修復在沒有
ip_tables核心模組的主機上阻止 rootless Docker 設定的問題。moby/moby#49727 - 修復重新載入 firewalld 後,可能導致多餘 iptables 規則被還原且永遠無法刪除的問題。moby/moby#49728
- 改進
docker service scale的 CLI 補全。docker/cli#5968 docker images --tree現在預設隱藏未標記 (untagged) 和懸空 (dangling) 的映像。docker/cli#6000- 如果無法建立與 Docker daemon 的連線,
docker system info將提供退出代碼。docker/cli#5918 - containerd 映像儲存庫:修復使用 BuildKit 建置時未發出
image tag事件的問題。moby/moby#49678 - containerd 映像儲存庫:改進
docker push/pull對遠端登錄檔錯誤的處理。moby/moby#49770 - containerd 映像儲存庫:顯示非層級 (non-layer) 映像 blob 的拉取進度。moby/moby#49746
打包更新
- 新增 Debian "Trixie" 套件。docker/docker-ce-packaging#1181
- 新增 Fedora 42 套件。docker/containerd-packaging#418, docker/docker-ce-packaging#1169
- 新增 Ubuntu 25.04 "Plucky Puffin" 套件。docker/containerd-packaging#419, docker/docker-ce-packaging#1177
- 將 BuildKit 更新至 v0.21.0。moby/moby#49809
- 將 Compose 更新至 v2.35.0。docker/docker-ce-packaging#1183
- 將 Go 執行時期更新至 1.23.8。docker/cli#5986, docker/docker-ce-packaging#1180, moby/moby#49737
網路
- 修復導致 Swarm 容器的主機連接埠對應在
docker ps和docker inspect中重複顯示的錯誤。moby/moby#49724 - 修復導致容器網路連接失敗,錯誤為「Bridge port not forwarding」的問題。moby/moby#49705
- 修復從預設橋接網路的容器中移除
--link的問題。moby/moby#49778 - 改進網路端點關係的追蹤方式,以減少錯誤回傳「has active endpoints」的可能性。moby/moby#49736
- 透過包含仍連線至正被刪除之網路的端點名稱,改進「has active endpoints」錯誤訊息。moby/moby#49773
API
- 將 API 版本更新至 v1.49。moby/moby#49718
GET /image/{name}/json現在支援platform參數,允許指定要檢查多平台映像的哪個平台變體。moby/moby#49586GET /info現在包含FirewallBackend,其中包含有關 daemon 防火牆設定的資訊。moby/moby#49761
Go SDK
- 將最低要求的 Go 版本更新至 go1.23。docker/cli#5868
- cli/command/context:從 JSON 輸出中移除臨時的
ContextType欄位。docker/cli#5981 - client:儘可能以規範格式保存映像參照。moby/moby#49609
棄用項目
- API:已棄用 API v1.49 中省略
GET /info回應中RegistryConfig結構的AllowNondistributableArtifactsCIDRs和AllowNondistributableArtifactsHostnames欄位。moby/moby#49749 - API:已棄用:
GET /info端點中的ContainerdCommit.Expected、RuncCommit.Expected和InitCommit.Expected欄位已在 API v1.48 中棄用,現在於 API v1.49 中省略。moby/moby#48556 - Go-SDK:cli/command/image:棄用
RunPull:此函數僅供內部使用,將於下一個版本移除。docker/cli#5975 - Go-SDK:cli/config/configfile:棄用
ConfigFile.Experimental欄位。自 v20.10 版本以來,實驗性 CLI 功能皆為預設啟用,此欄位已不再使用。請改用ConfigFile.Features來設定選用功能。此欄位將於未來的版本中移除。docker/cli#5977 - Go-SDK:棄用
pkg/archive,已遷移至github.com/moby/go-archive。moby/moby#49743 - Go-SDK:棄用
pkg/atomicwriter,已遷移至github.com/moby/sys/atomicwriter。moby/moby#49748 - Go-SDK:opts:移除已棄用的
PortOpt、ConfigOpt、SecretOpt別名。docker/cli#5953 - Go-SDK:registry:棄用
APIEndpoint.Official欄位。moby/moby#49706
28.0.4
2025-03-25如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復與私有儲存庫互動時導致
docker pull/push失敗的迴歸問題。docker/cli#5964
28.0.3
2025-03-25如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復
docker run在資料被消費前容器即退出,導致STDOUT/STDERR過早截斷的問題。docker/cli#5957
打包更新
- 將 BuildKit 更新至 v0.20.2。moby/moby#49698
- 將
runc更新至 v1.2.6。moby/moby#49682 - 將 containerd 更新至 v1.7.26。docker/containerd-packaging#409
28.0.2
2025-03-19如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
錯誤修正與增強功能
- 修復 CLI 特有屬性 (
docker.cli.*) 被意外傳遞至下游 OTel 服務的問題。docker/cli#5842 - 修復使用者指定的
OTEL_RESOURCE_ATTRIBUTES被 CLI 內部遙測屬性覆寫的問題。CLI 現在正確合併使用者指定與內部的屬性,允許兩者並存。docker/cli#5842 - 修復在 Windows 上,當存在 v28.0.0 之前建立的容器時,daemon 無法啟動的問題。moby/moby#49626
- 修復
docker buildx prune搭配--min-free-space時可能發生的錯誤。moby/moby#49623 - 修復關閉容器時 daemon 日誌中出現虛假
io: read/write on closed pipe錯誤的問題。moby/moby#49590 - 修復 Docker daemon 若 containerd socket 無法立即取得時,過早失敗的問題。moby/moby#49603
- 預設遮罩容器
/proc和/sys中的 Linux 熱中斷 (thermal interrupt) 資訊。moby/moby#49560 - 更新
contrib/check-config.sh以檢查更多與 iptables 相關的核心模組。moby/moby#49622 - containerd 映像儲存庫:修復透過
--user傳遞的使用者 ID 處理中的整數溢位問題。moby/moby#49652 - containerd 映像儲存庫:修復記錄到 daemon 日誌中的虛假
reference for unknown type: application/vnd.in-toto+json警告。moby/moby#49652 - containerd 映像儲存庫:在執行大量容器時,改進
docker ps的效能。moby/moby#49365
打包更新
- 將 BuildKit 更新至 v0.20.1。moby/moby#49587
- 將 Buildx 更新至 v0.22.0。docker/docker-ce-packaging#1175
- 將 Compose 更新至 v2.34.0。docker/docker-ce-packaging#1172
- 將 Go 執行時期更新至 1.23.7。docker/cli#5890, docker/docker-ce-packaging#1171, moby/moby#49580
- 將 RootlessKit 更新至 v2.3.4。moby/moby#49614
- 將 containerd(僅限靜態二進位檔案)更新至 v1.7.27。moby/moby#49656
網路
- 新增環境變數
DOCKER_INSECURE_NO_IPTABLES_RAW=1,以允許 Docker 在 Linux 核心無法提供CONFIG_IP_NF_RAW支援的系統上執行。啟用後,Docker 將不會在 iptablesraw表中建立規則。警告:這在生產環境中不推薦使用,因為它會降低安全性,允許本機網路上的其他主機路由至發布到主機位址的連接埠(即使是發布到127.0.0.1)。此選項會繞過 Docker Engine 28.0.0 中引入的部分安全強化功能。moby/moby#49621 - 允許當端點連線至父介面關閉的 macvlan 網路驅動程式時,進行容器啟動。moby/moby#49630
- 不要跳過
gateway_mode=routed網路中產生的封包之 DNAT。moby/moby#49577 - 修復
docker ps不一致回報雙堆疊 (dual-stack) 連接埠對應的錯誤。moby/moby#49657 - 修復導致
docker-proxy停止將 UDP 資料報轉發至容器的錯誤。moby/moby#49649 - 修復導致
docker-proxy急於關閉與容器的 UDP 連線,並導致來源位址不必要地變更的錯誤。moby/moby#49649
Go SDK
- 將
cli-plugins/manager中的各種型別與常數遷移至獨立套件。docker/cli#5902 - 將最低要求的 Go 版本更新至 go1.23。moby/moby#49541
cli/command:將PrettyPrint工具遷移至cli/command/formatter。docker/cli#5916- runconfig/errors:將
ErrConflictHostNetwork拆分為ErrConflictConnectToHostNetwork和ErrConflictDisconnectFromHostNetwork。moby/moby#49605
棄用項目
- Go-SDK:棄用
cli-plugins/manager.ResourceAttributesEnvvar常數。它僅供內部使用,但持有OTEL_RESOURCE_ATTRIBUTES名稱(屬於 OpenTelemetry 規範的一部分)。此常數的使用者應定義自己的常數。該常數將於下一個版本移除。docker/cli#5881 - Go-SDK:棄用
opts.PortOpt、opts.ConfigOpt和opts.SecretOpt。這些型別已遷移至opts/swarmopts套件。docker/cli#5907 - Go-SDK:移除
service/logs套件。docker/cli#5910 - Go-SDK:
cli/command/image:棄用PushTrustedReference並遷移至cli/trust。docker/cli#5894 - Go-SDK:
cli/command/image:棄用並內部化TrustedPush。docker/cli#5894 - Go-SDK:
cli/command:棄用Cli.NotaryClient:請改用trust.GetNotaryRepository。此方法已不再使用,將於下一個版本移除。docker/cli#5885 - Go-SDK:
cli/command:棄用Cli.RegistryClient。此方法僅供內部使用,將於下一個版本移除。請改用client.NewRegistryClient。docker/cli#5889, docker/cli#5889 - Go-SDK:
registry:棄用RepositoryInfo.Official欄位。moby/moby#49567 - Go-SDK:
registry:棄用HostCertsDir:此函數僅供內部使用,將於下一個版本移除。moby/moby#49612 - Go-SDK:
registry:棄用SetCertsDir:當使用 RootlessKit 執行時,憑證目錄會自動選擇,不應手動設定。moby/moby#49612
28.0.1
2025-02-26如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
網路
- 移除對核心模組
ip_set、ip_set_hash_net和netfilter_xt_set的依賴。- 該依賴在 28.0.0 版本中引入,但被證明過於干擾。使用這些模組的 iptables 規則已被替換。moby/moby#49530
- 允許 daemon 在 IPv6 已停用的主機上啟動,而無需設定
--ip6tables=false。moby/moby#49525 - 修復導致具有
--restart=always且已使用的連接埠被佔用的容器在緊密迴圈中重新啟動的錯誤。moby/moby#49507 - 修復 Swarm ingress 的問題,起因是 iptables 規則排序不正確。moby/moby#49538
- 修復從
--config-only網路建立 swarm 範圍網路的問題。moby/moby#49521 - 修復
docker network inspect為新建立且無特定 IPAM 設定的網路回報 IPv6 閘道(帶 CIDR 字尾)的問題,直到 daemon 重啟後才會修正。moby/moby#49520 - 改進當無法使用核心模組
ip_set、ip_set_hash_net和netilter_xt_set時回報的錯誤。moby/moby#49524 - 將大部分 Docker 的 iptables 規則移出 filter-FORWARD 鏈,以便其他應用程式可以自由追加必須接在 Docker 規則之後的規則。moby/moby#49518
- 更新
--help輸出和 man page,以說明哪些選項僅適用於預設橋接網路。moby/moby#49522
錯誤修正與增強功能
- 修復
docker context create在使用"skip-tls-verify"選項時總是回傳錯誤的問題。docker/cli#5850 - 修復 Shell 自動補全建議服務與節點時使用 ID 而非名稱的問題。docker/cli#5848
- 修復當
docker exec/run回傳非零狀態時,無意中將退出狀態印出到標準錯誤輸出的問題。docker/cli#5854 - 修復迴歸問題:RootlessKit 連接埠驅動程式 "slirp4netns" 不支援協定 "tcp"。 moby/moby#49514
- containerd 映像檔儲存庫:修復
docker inspect無法顯示缺失部分平台層級之多平台映像檔的問題。 moby/moby#49533 - containerd 映像檔儲存庫:修復
docker images --tree顯示錯誤內容大小的問題。 moby/moby#49535 - 修復 i386 架構下的編譯問題 moby/moby#49526
打包更新
- 將
github.com/go-jose/go-jose/v4更新至 v4.0.5 以修復 GHSA-c6gw-w398-hv78 / CVE-2025-27144。 docker/cli#5867 - 將 Buildx 更新至 v0.21.1。 docker/docker-ce-packaging#1167
- 將 Compose 更新至 v2.33.1。 docker/docker-ce-packaging#1168
API
- containerd 映像檔儲存庫:修復
GET /images/json?manifests=1未能為僅含索引(index-only)的映像檔填寫Manifests欄位的問題。 moby/moby#49533 - containerd 映像檔儲存庫:修復
GET /images/json 和 /images/<name>/json中的Size.Content欄位錯誤地包含了本地無法取得之內容大小的問題。 moby/moby#49535
28.0.0
2025-02-19如需此版本中所有拉取請求和變更的完整列表,請參閱相關的 GitHub 里程碑
- docker/cli, 28.0.0 里程碑
- moby/moby, 28.0.0 里程碑
- 關於已棄用及移除的功能,請參閱 已棄用功能。
- 關於引擎 API 的變更,請參閱 API 版本歷史。
新增功能
- 新增透過
--mount type=image將映像檔掛載至容器內的功能。 moby/moby#48798- 您也可以指定
--mount type=image,image-subpath=[subpath],...選項來掛載映像檔中的特定路徑。 docker/cli#5755
- 您也可以指定
docker images --tree現在會顯示元數據標籤。 docker/cli#5744docker load、docker save和docker history現在支援--platform旗標,允許您針對多平台映像檔選擇特定平台進行單平台操作。 docker/cli#5331- 為
docker service create和docker stack新增OOMScoreAdj設定。 docker/cli#5145 docker buildx prune現在支援reserved-space、max-used-space、min-free-space和keep-bytes過濾器。 moby/moby#48720- Windows:新增支援將 containerd 作為 daemon 的子處理程序執行,而非使用系統安裝的 containerd。 moby/moby#47955
網路
docker-proxy二進位檔已更新,舊版本無法與更新後的dockerd搭配運作。 moby/moby#48132- 關閉一個潛在窗口,原先該窗口中使用者層級代理(
docker-proxy)可能會接受 TCP 連線,但隨後在iptablesNAT 規則設定完成後該連線會失敗。 - 執行檔
rootlesskit-docker-proxy已不再使用,並已從建置與發行版本中移除。
- 關閉一個潛在窗口,原先該窗口中使用者層級代理(
- 從宿主機
/etc/resolv.conf讀取的 DNS 名稱伺服器,現在將永遠從宿主機的網路命名空間(network namespace)進行存取。 moby/moby#48290- 當宿主機的
/etc/resolv.conf未包含任何名稱伺服器且沒有--dns覆蓋設定時,除了預設的 bridge 網路與建置容器外,將不再使用 Google 的 DNS 伺服器。
- 當宿主機的
- Bridge 與 macvlan 網路中的容器介面現在使用隨機生成的 MAC 位址。 moby/moby#48808
- 當介面啟動時將會發送免費 ARP(Gratuitous ARP)/鄰居公告(Neighbour Advertisement)訊息,以便在重複使用 IP 位址時,將其與新生成的 MAC 位址關聯。
- 預設 bridge 網路中的 IPv6 位址現在由 IPAM 指派,而非從 MAC 位址推導。
- 已棄用的 OCI
prestart掛鉤(hook)現在僅供建置容器使用。對於其他容器,網路介面會在任務建立完成後、容器任務啟動前加入網路命名空間。 moby/moby#47406 - 為
docker run、docker container create和docker network connect新增gw-priority選項。此選項將由引擎用來判定哪個網路為容器提供預設閘道。在docker run中,此選項僅能透過延伸的--network語法使用。 docker/cli#5664 - 新增網路標籤
com.docker.network.endpoint.ifname,用於自訂將容器連線至網路時所使用的介面名稱。Linux 上所有內建的網路驅動程式均支援此功能。 moby/moby#49155- 當建立容器時指定了多個網路,無法保證網路連線至容器的順序。因此,若自訂的介面名稱使用了與自動生成名稱相同的前綴(例如
eth),容器可能會啟動失敗。 - 建議的做法是使用不同的前綴(例如
en0),或使用足夠大的數字後綴以避免衝突,例如eth100。 - 此標籤可透過
docker network connect的--driver-opt旗標指定,例如docker network connect --driver-opt=com.docker.network.endpoint.ifname=foobar …。 - 或透過
docker run的長格式--network旗標指定,例如docker run --network=name=bridge,driver-opt=com.docker.network.endpoint.ifname=foobar …
- 當建立容器時指定了多個網路,無法保證網路連線至容器的順序。因此,若自訂的介面名稱使用了與自動生成名稱相同的前綴(例如
- 若自訂網路驅動程式回報具備
GwAllocChecker能力,則在建立網路之前,該驅動程式將會收到一個包含網路選項的GwAllocCheckerRequest。隨後,自訂驅動程式可回覆不應指派任何閘道 IP 位址。 moby/moby#49372
Bridge 網路中的連接埠發布(Port publishing)
dockerd現在要求 Linux 核心支援ipset。 moby/moby#48596- 用於實作連接埠發布與網路隔離的
iptables與ip6tables規則已進行大幅修改。這實現了後述的部分功能變更,也是未來重構以支援原生nftables的第一步。 moby/moby#48815 - 若有必要降級至舊版 daemon,則需要對新規則進行一些手動清理。最簡單且保險的方法是重新啟動宿主機,或在啟動舊版 daemon 前,使用
iptables -F和ip6tables -F清除filter表中所有現有的iptables規則。當上述方法不可行時,請以 root 權限執行以下指令:iptables -D FORWARD -m set --match-set docker-ext-bridges-v4 dst -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; ip6tables -D FORWARD -m set --match-set docker-ext-bridges-v6 dst -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTiptables -D FORWARD -m set --match-set docker-ext-bridges-v4 dst -j DOCKER; ip6tables -D FORWARD -m set --match-set docker-ext-bridges-v6 dst -j DOCKER- 若您之前將 iptables filter-FORWARD 政策設定為
ACCEPT,且需要恢復對未發布連接埠的存取,請同時刪除DOCKER鏈中每個 bridge 網路的規則。例如:iptables -D DOCKER ! -i docker0 -o docker0 -j DROP。
- 用於實作連接埠發布與網路隔離的
- 修復一項安全漏洞:該漏洞允許遠端主機直接連線至容器的已發布連接埠。 moby/moby#49325
- 修復一項安全漏洞:該漏洞允許相鄰主機連線至對應於回送(loopback)位址的連接埠。 moby/moby#49325
- 修復一個導致無法將連接埠發布至鏈結本地(link-local)位址的問題。 moby/moby#48570
- 容器發布的 UDP 連接埠現在可透過宿主機的公用 IP 位址,被其他網路上的容器可靠地存取。 moby/moby#48571
- Docker 現在僅在宿主機本身啟用 IP 轉發(sysctls
net.ipv6.conf.all.forwarding與net.ipv6.conf.default.forwarding)時,才會將filter表中FORWARD鏈的ip6tables政策設定為DROP。這現在與現有的 IPv4 行為保持一致。 moby/moby#48594- 若您的宿主機已啟用 IPv6 轉發,但過去依賴 Docker 將 ip6tables filter-FORWARD 政策設為
DROP,您可能需要更新宿主機的設定以確保其安全性。
- 若您的宿主機已啟用 IPv6 轉發,但過去依賴 Docker 將 ip6tables filter-FORWARD 政策設為
- 對於未明確使用
p/-publish暴露出的容器連接埠,現在已在DOCKERiptables 鏈中封鎖直接路由存取。 moby/moby#48724- 若您的宿主機之前預設的 iptables filter-FORWARD 政策保持為
ACCEPT,且仍需從遠端主機對容器未發布的連接埠進行直接路由存取,選項如下:- 發布您需要的連接埠。
- 使用下方所述的新選項
gateway_mode_ipv[46]=nat-unprotected。
- 發布至宿主機位址的容器連接埠,將持續透過 NAT 或使用者層級代理,經由該宿主機位址進行存取。
- 未發布的容器連接埠仍可從 Docker 宿主機,透過容器的 IP 位址直接進行存取。
- 若您的宿主機之前預設的 iptables filter-FORWARD 政策保持為
- 以
gateway_mode_ipv[46]=routed建立的網路,現在可從同一 Docker 宿主機上執行的其他 bridge 網路存取,也可從宿主機外部存取。 moby/moby#48596 - Bridge 驅動程式選項
com.docker.network.bridge.gateway_mode_ipv4與com.docker.network.bridge.gateway_network.bridge.gateway_mode_ipv6現在接受nat-unprotected模式。 moby/moby#48597nat-unprotected與預設的nat模式相似,但不會設定任何針對單一連接埠/協定的規則。這意味著遠端主機可透過直接路由存取容器上的任何連接埠。
- 當網路同時為
internal時,Bridge 驅動程式選項com.docker.network.bridge.gateway_mode_ipv4與com.docker.network.bridge.gateway_mode_ipv6現在接受isolated模式。 moby/moby#49262- 在
internal網路中,位址通常會指派給 bridge 裝置。因此,Docker 宿主機上的處理程序可以存取該網路,而網路內的容器可以存取該 bridge 位址上監聽的宿主機服務(包含監聽在「任何」宿主機位址,如0.0.0.0或::的服務)。 - 以
isolated閘道模式建立的internalbridge 網路,在 Docker 宿主機上不會擁有位址。
- 在
- 當連接埠對應包含無法使用的宿主機 IP 位址或連接埠號(因為使用
--gateway_mode_ipv[46]停用了宿主機的 NAT),容器建立將不再失敗。若在連線或中斷網路時閘道端點發生變化,可能會需要這些未使用的欄位。關於這些未使用欄位的訊息將會被記錄下來。 moby/moby#48575 - 啟用使用者層級代理時,不再為容器自身已發布的連接埠建立 iptables nat-POSTROUTING 偽裝(masquerade)規則。 moby/moby#48854
IPv6
- 為
docker network create新增--ipv4選項。若要停用網路的 IPv4 位址指派,請使用docker network create --ipv4=false [...]。 docker/cli#5599 - Daemon 選項
--ipv6(daemon.json中的"ipv6": true)現在可以在沒有fixed-cidr-v6的情況下使用。 moby/moby#48319 - IPAM 現在處理大於 "/64" 的子網路。 moby/moby#49223
- 重複位址檢測(DAD)現在已針對指派給 bridge 網路所屬 bridge 的位址停用。 moby/moby#48609
- 針對
host-gateway進行修改,以與僅 IPv6 網路相容。 moby/moby#48807- 當在
--add-host選項中使用特殊值host-gateway代替位址時,它會被 Docker 宿主機上的位址取代,以便能按名稱參照宿主機。所使用的位址屬於預設 bridge(通常為docker0)。直至目前為止,它始終是一個 IPv4 位址,因為 bridge 網路上的所有容器都擁有 IPv4 位址。 - 現在,若預設 bridge 網路啟用了 IPv6,將會為 IPv4 和 IPv6 位址建立
/etc/hosts項目。因此,僅連線至僅 IPv6 網路的容器也可以按名稱存取宿主機。 --host-gateway-ip選項會覆蓋用於取代host-gateway的位址。現在命令列允許使用兩個此類選項,以分別對應一個 IPv4 閘道與一個 IPv6 閘道。- 在
daemon.json檔案中,若要提供兩個位址,請使用"host-gateway-ips"。例如:"host-gateway-ips": ["192.0.2.1", "2001:db8::1111"]。
- 當在
錯誤修正與增強功能
- 預設將 IPv6 回送位址新增為不安全的登錄檔(insecure registry)。 moby/moby#48540
- 新增對
dockerd使用 Cobra 生成完成腳本(completion scripts)的支援。 moby/moby#49339 - 修復當容器透過開機時的
systemd自動啟動功能啟動時,DNS 查詢失敗的問題。 moby/moby#48812 - 修復 Docker Swarm 模式忽略
volume.subpath的問題。 docker/cli#5833 - 修復
docker export在操作取消後仍繼續導出的問題。 moby/moby#49265 - 修復
docker export在失敗後未釋放容器可寫層的問題。 moby/moby#48517 - 修復
docker images --tree在有多個名稱可用時,不必要地截斷長映像檔名稱的問題。 docker/cli#5757 - 修復一個 bug:若容器名稱與另一個容器的 ID 相符,該容器在 daemon 啟動時無法恢復。 moby/moby#48669
- 修復一個問題,防止
docker ps顯示的部分 IPv6 位址無法被正確加上括號。 docker/cli#5468 - 修復一個在
docker run期間防止映像檔提取被取消的 bug。 docker/cli#5645 - 修復以 Windows 服務執行 daemon 時的錯誤處理,以防止不正常的結束。 moby/moby#48518
- 修復在使用
--attach stdout或--attach stderr相對於stdin時,docker run輸出不一致的問題。docker run --attach stdin現在若容器退出,則會同時退出。 docker/cli#5662 - 修復透過 NSS 模組支援
subid的 Rootless Docker 設定。 moby/moby#49036 - 由 CLI 生成的完成腳本現在會在每個指令/旗標建議旁顯示描述。 docker/cli#5756
docker ps在連接埠綁定中顯示的 IPv6 位址現在已加上括號。 docker/cli#5363- 實作 Compose 的連接埠驗證方法。 docker/cli#5524
- 改進命令列無效旗標的錯誤輸出。 docker/cli#5233
- 改進在使用其他容器的網路命名空間啟動容器失敗時的錯誤資訊。 moby/moby#49367
- 改進對無效 API 錯誤的處理,避免顯示空白的錯誤訊息。 moby/moby#49373
- 改進對未知(子)指令與無效參數的輸出與一致性。 docker/cli#5234
- 改進對 daemon 設定中
exec-opts的驗證。 moby/moby#48979 - 更新
--gpus=0旗標的處理方式,使其與 NVIDIA Container Runtime 一致。 moby/moby#48482 client.ContainerCreate現在將HostConfig中的CapAdd與CapDrop欄位正規化為其標準格式。 moby/moby#48551docker image save現在會產生穩定的時間戳記。 moby/moby#48611docker inspect現在允許您檢查 Swarm 設定。 docker/cli#5573- containerd 映像檔儲存庫:在
docker pull中新增對Extracting層級狀態的支援。 moby/moby#49064 - containerd 映像檔儲存庫:修復
commit、import和build未將被替換的映像檔保留為懸空(dangling)映像檔的問題。 moby/moby#48316 - containerd 映像檔儲存庫:當請求的平台未載入時,使
docker load --platform回傳錯誤。 moby/moby#48718 - 修復
--link選項的驗證。 docker/cli#5739 - 新增對 network-diagnostic-port daemon 設定選項的驗證。 moby/moby#49305
- 除非明確設定,否則在不需要的情況下,不再為閘道保留 IP 位址。具體而言:具有
com.docker.network.bridge.inhibit_ipv4選項的「內部」bridge 網路、沒有父介面的ipvlan或macvlan網路,以及 L3 IPvlan 模式。 moby/moby#49261 - 若自訂網路驅動程式回報具備
GwAllocChecker能力,則在建立網路之前,該驅動程式將會收到一個包含網路選項的GwAllocCheckerRequest。隨後,自訂驅動程式可回覆不應指派任何閘道 IP 位址。 moby/moby#49372 - 修復了一個問題,該問題導致容器無法同時連線至 L3 IPvlan 與其他網路類型。 moby/moby#49130
- 當將容器從網路中斷連線時,移除正確的
/etc/hosts項目。 moby/moby#48857 - 修復重複的網路斷線事件。 moby/moby#48800
- 解決與變更
docker0的fixed-cidr,以及從使用者管理的預設 bridge(--bridge)推斷設定相關的問題。 moby/moby#48319 - 移除功能旗標
windows-dns-proxy(於 26.1.0 版本引入,用於控制 Windows 容器至外部 DNS 解析器的轉發,以使nslookup運作)。該旗標已於 27.0.0 版本中預設啟用。 moby/moby#48738 - 移除用於 SCTP 總和檢查碼(checksumming)的
iptablesmangle 規則。該規則可透過在 daemon 環境中設定DOCKER_IPTABLES_SCTP_CHECKSUM=1來重新啟用。此覆蓋機制將在未來的版本中移除。 moby/moby#48149 - 在大多數情況下,連線至 bridge 網路的速度變得更快。 moby/moby#49302
打包更新
- 將 Go 執行時期更新至 1.23.6。 docker/cli#5795, moby/moby#49393, docker/docker-ce-packaging#1161
- 將
runc更新至 v1.2.5(僅限靜態二進位檔)。 moby/moby#49464 - 將 containerd 更新至 v1.7.25。 moby/moby#49252
- 將 BuildKit 更新至 v0.20.0。 moby/moby#49495
- 將 Buildx 更新至 v0.21.0。 docker/docker-ce-packaging#1166
- 將 Compose 更新至 v2.32.4。 docker/docker-ce-packaging#1143
dockerd(8)手冊頁面的規範來源已移回moby/moby儲存庫本身。 moby/moby#48298
Go SDK
- 改進對空物件 ID 的驗證。現在當嘗試使用空 ID 或名稱時,用戶端會回傳「Invalid Parameter」錯誤。這會將部分「Inspect」函數回傳的錯誤從「Not found」變更為「Invalid Parameter」。 moby/moby#49381
Client.ImageBuild()現在會從 API 請求的查詢字串中省略預設值。 moby/moby#48651api/types/container:合併Stats與StatsResponse。 moby/moby#49287client.WithVersion:在設定 API 版本時移除 v-前綴。 moby/moby#49352client:新增WithTraceOptions,允許指定自訂 OTel 追蹤選項。 moby/moby#49415client:新增HijackDialer介面。 moby/moby#49388client:新增SwarmManagementAPIClient介面,以描述所有與 Swarm 特定物件相關的 API 用戶端方法。 moby/moby#49388client:新增WithTraceOptions,允許指定自訂 OTel 追蹤選項。 moby/moby#49415client:ImageHistory、ImageLoad與ImageSave現在使用變長函數選項。 moby/moby#49466pkg/containerfs:移至 internal。 moby/moby#48097pkg/reexec:現在可用於 Linux、Windows、macOS 與 FreeBSD 以外的平台。 moby/moby#49118api/types/container:引入CommitResponse類型。目前這只是IDResponse的別名,但未來版本可能會成為獨立類型。 moby/moby#49444api/types/container:引入ExecCreateResponse類型。目前這只是IDResponse的別名,但未來版本可能會成為獨立類型。 moby/moby#49444
API
- 將 API 版本更新至 v1.48。 moby/moby#48476
GET /images/{name}/json回應現在回傳Manifests欄位,其中包含有關映像檔索引中包含的子資訊清單資訊。這包括平台特定清單與建置證明(build attestations)等內容。 moby/moby#48264POST /containers/create現在支援image類型的Mount,用於將映像檔掛載至容器內。 moby/moby#48798GET /images/{name}/history現在支援一個platform參數(JSON 編碼的 OCI Platform 類型),讓您可以指定要顯示其歷史紀錄的平台。 moby/moby#48295POST /images/{name}/load與GET /images/{name}/get現在支援platform參數(JSON 編碼的 OCI Platform 類型),讓您可以指定要載入/儲存的平台。若未傳遞此參數,則會載入/儲存完整的多平台映像檔。 moby/moby#48295- 改進容器調整大小與 exec 調整大小時,對於無效寬度/高度的錯誤處理。 moby/moby#48679
POST /containers/create端點現在會在回應中包含警告:當同時設定容器全域VolumeDriver選項與透過Mounts定義的磁碟區時,因為VolumeDriver選項對這些磁碟區無效。此警告先前是由 CLI 生成的。 moby/moby#48789- containerd 映像檔儲存庫:
GET /images/json與GET /images/{name}/json回應現在包含Descriptor欄位,其中包含映像檔目標的 OCI 描述元。此新欄位僅在 daemon 提供多平台映像檔儲存庫時才會填入。 moby/moby#48894 - containerd 映像檔儲存庫:
GET /containers/{name}/json現在回傳ImageManifestDescriptor欄位,其中包含用於建立容器之映像檔的平台特定清單的 OCI 描述元。 moby/moby#48855 - 新增除錯端點(
GET /debug/vars、GET /debug/pprof/、GET /debug/pprof/cmdline、GET /debug/pprof/profile、GET /debug/pprof/symbol、GET /debug/pprof/trace、GET /debug/pprof/{name}),現在也可以透過版本化 API 路徑(/v<API-version>/<endpoint>)進行存取。 moby/moby#49051 - 修復 API 針對驗證錯誤回傳
500狀態碼而非400的問題。 moby/moby#49217 - 修復存檔端點
HEAD /containers/{name:.*}/archive、GET /containers/{name:.*}/archive、PUT /containers/{name:.*}/archive回傳500狀態而非400的問題。 moby/moby#49219 POST /containers/create現在在HostConfig.SecurityOpt中接受writable-cgroups=true選項,以掛載容器的可寫 cgroups。這提供了比HostConfig.Privileged更細緻的方法。 moby/moby#48828POST /build/prune將keep-bytes更名為reserved-space,並現在支援額外的修剪參數max-used-space與min-free-space。 moby/moby#48720POST /networks/create現在有一個EnableIPv4欄位。將其設定為false會停用該網路的 IPv4 IPAM。 moby/moby#48271GET /networks/{id}現在回傳EnableIPv4欄位,顯示網路是否已啟用 IPv4 IPAM。 moby/moby#48271- 使用者定義的 bridge 網路要求必須啟用 IPv4 或 IPv6 位址指派。預設 bridge 網路(
docker0)無法停用 IPv4。 moby/moby#48323 - 可以建立已停用 IPv4、IPv6 或兩者位址家族指派的
macvlan與ipvlan網路。 moby/moby#48299 - Windows 或 Swarm 網路無法停用 IPv4。 moby/moby#48278
- 新增指定哪個網路應為容器提供預設閘道的方法。 moby/moby#48936
POST /networks/{id}/connect與POST /containers/create現在在EndpointsConfig中接受GwPriority欄位。此值用於判定哪個網路端點為容器提供預設閘道。選擇優先級最高的端點。若多個端點具有相同的優先級,則端點會按其網路名稱進行字典排序,並選擇排序最靠前的端點。 moby/moby#48746GET /containers/json現在為每個網路端點回傳NetworkSettings中的GwPriority欄位。GwPriority欄位由 CLI 用於docker run與docker network connect的新gw-priority選項。 moby/moby#48746
--sysctl選項中eth0的設定不再自動遷移至網路端點。 moby/moby#48746- 例如,在 Docker CLI 中,
docker run --network mynet --sysctl net.ipv4.conf.eth0.log_martians=1 ...會被拒絕。相反地,您必須使用docker run --network name=mynet,driver-opt=com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1 ...
- 例如,在 Docker CLI 中,
GET /containers/json現在回傳與/containers/{name}/json中相同欄位一致的ImageManifestDescriptor欄位。此欄位僅在 daemon 提供多平台映像檔儲存庫時才會填入。 moby/moby#49407
已移除
- Fluent logger 選項
fluentd-async-connect已於 v20.10 棄用,現已移除。 moby/moby#46114 docker stop與docker restart上的--time選項已棄用,並更名為--timeout。 docker/cli#5485- Go-SDK:
pkg/ioutils:移除從未使用的NewReaderErrWrapper。 moby/moby#49258 - Go-SDK:
pkg/ioutils:移除已棄用的BytesPipe、NewBytesPipe、ErrClosed、WriteCounter、NewWriteCounter、NewReaderErrWrapper、NopFlusher。 moby/moby#49245 - Go-SDK:
pkg/ioutils:移除已棄用的NopWriter與NopWriteCloser。 moby/moby#49256 - Go-SDK:
pkg/sysinfo:移除已棄用的 NumCPU。 moby/moby#49242 - Go-SDK: 移除
pkg/broadcaster,因為它僅在內部使用。 moby/moby#49172 - Go-SDK: 移除已棄用的
cli.Errors類型。 docker/cli#5549 - 移除
pkg/ioutils.ReadCloserWrapper,因為它僅用於測試。 moby/moby#49237 - 移除已棄用的
api-cors-header設定參數與dockerd--api-cors-header選項。 moby/moby#48209 - 移除已棄用的
APIEndpoint.Version欄位、APIVersion類型,以及APIVersion1與APIVersion2常數。 moby/moby#49004 - 移除已棄用的
api-cors-header設定參數與 Docker daemon 的--api-cors-header選項。 docker/cli#5437 - 移除已棄用的
pkg/directory套件。 moby/moby#48779 - 移除已棄用的
pkg/dmsg.Dmesg()。 moby/moby#48109 - 移除已棄用的 image/spec 套件,該套件已移至獨立模組(
github.com/moby/docker-image-spec)。 moby/moby#48460 - 移除已棄用的
logentries日誌驅動程式的遷移程式碼與錯誤。 moby/moby#48891 - 移除對已棄用的外部 graph-driver 外掛的支援。 moby/moby#48072
api/types:移除已棄用的container.ContainerNode與ContainerJSONBase.Node欄位。 moby/moby#48107api/types:移除已棄用的別名:ImagesPruneReport、VolumesPruneReport、NetworkCreateRequest、NetworkCreate、NetworkListOptions、NetworkCreateResponse、NetworkInspectOptions、NetworkConnect、NetworkDisconnect、EndpointResource、NetworkResource、NetworksPruneReport、ExecConfig、ExecStartCheck、ContainerExecInspect、ContainersPruneReport、ContainerPathStat、CopyToContainerOptions、ContainerStats、ImageSearchOptions、ImageImportSource、ImageLoadResponse、ContainerNode。 moby/moby#48107libnetwork/iptables:移除已棄用的IPV、Iptables、IP6Tables與Passthrough()。 moby/moby#49121pkg/archive:移除已棄用的CanonicalTarNameForPath、NewTempArchive、TempArchive。 moby/moby#48708pkg/fileutils:移除已棄用的GetTotalUsedFds。 moby/moby#49210pkg/ioutils:移除OnEOFReader,該方法僅在內部使用。 moby/moby#49170pkg/longpath:移除已棄用的Prefix常數。 moby/moby#48779pkg/stringid:移除已棄用的IsShortID與ValidateID函數。 moby/moby#48705runconfig/opts:移除已棄用的ConvertKVStringsToMap。 moby/moby#48102runconfig:移除已棄用的ContainerConfigWrapper、SetDefaultNetModeIfBlank、DefaultDaemonNetworkMode、IsPreDefinedNetwork。 moby/moby#48102container:移除已棄用的ErrNameReserved、ErrNameNotReserved。 moby/moby#48728- 移除
Daemon.ContainerInspectCurrent()方法,並將Daemon.ContainerInspect()的簽章更改為接受backend.ContainerInspectOptions結構。 moby/moby#48672 - 移除已棄用的
Daemon.Exists()與Daemon.IsPaused()方法。 moby/moby#48723
棄用項目
- API:
GET /info回應中的BridgeNfIptables與BridgeNfIp6tables欄位現在將始終為false,並將在 API v1.49 中移除。netfilter 模組現在按需載入,不再於 daemon 啟動時載入,使這些欄位變得過時。 moby/moby#49114 - API:針對回傳 JSON 進度回應的端點(例如
POST /images/create、POST /images/{name}/push與POST /build)串流回應中的error與progress欄位已棄用。 moby/moby#49447- 使用者應改用
errorDetail與progressDetail欄位中的資訊。 - 這些欄位分別在 API v1.4 (docker v0.6.0) 與 API v1.8 (docker v0.7.1) 中被標記為棄用,但仍被回傳。
- 這些欄位將在未來的 API 版本中留空或被省略。
- 使用者應改用
- 棄用
Daemon.Register()。此函數未被使用,並將在下一個版本中移除。 moby/moby#48702 - 棄用
client.ImageInspectWithRaw函數,改用新的client.ImageInspect。 moby/moby#48264 - 棄用
daemon/config.Config.ValidatePlatformConfig()。此方法先前作為config.Validate的輔助函數,現在應直接使用後者。 moby/moby#48985 - 棄用
pkg/reexec。此套件已棄用並移至獨立模組。請改用github.com/moby/sys/reexec。 moby/moby#49129 - 棄用推送不可散布(non-distributable)構件的設定。 docker/cli#5724
- 棄用
--allow-nondistributable-artifactsdaemon 旗標以及daemon.json中對應的allow-nondistributable-artifacts欄位。設定任一選項將不再生效,但已新增棄用警告日誌。 moby/moby#49065 - 棄用
GET /infoAPI 回應中的RegistryConfig.AllowNondistributableArtifactsCIDRs與RegistryConfig.AllowNondistributableArtifactsHostnames欄位。對於 API 版本 v1.48 及更舊版本,欄位仍包含在回應中但始終為null。在 API 版本 v1.49 及之後,該欄位將完全被省略。 moby/moby#49065 - Go-SDK: 棄用
registry.ServiceOptions.AllowNondistributableArtifacts欄位。 moby/moby#49065 - Go-SDK:
api/types/system.Info中的BridgeNfIptables、BridgeNfIp6tables欄位,以及pkg/sysinfo.SysInfo中的BridgeNFCallIPTablesDisabled、BridgeNFCallIP6TablesDisabled欄位已棄用,並將在下一個版本中移除。 moby/moby#49114 - Go-SDK:
client:棄用CommonAPIClient介面,改用APIClient介面。CommonAPIClient將在下一個版本變更為APIClient的別名,並在隨後的版本中移除。 moby/moby#49388 - Go-SDK:
client:棄用ErrorConnectionFailed輔助函數。此函數僅供內部使用,並將在下一個版本中移除。 moby/moby#49389 - Go-SDK:
pkg/ioutils:棄用NewAtomicFileWriter、AtomicWriteFile、AtomicWriteSet、NewAtomicWriteSet,改用pkg/atomicwriter的對應項目。 moby/moby#49171 - Go-SDK:
pkg/sysinfo:棄用NumCPU。此工具與runtime.NumCPU行為相同。 moby/moby#49241 - Go-SDK:
pkg/system:棄用MkdirAll。此函數針對 Windows GUID 磁碟區路徑提供自訂處理。此類路徑的處理現在由 Go 1.22 及更新版本的標準程式庫支援,此函數現在是os.MkdirAll的別名,應直接使用後者。此別名將在下一個版本中移除。 moby/moby#49162 - Go-SDK: 棄用
pkg/parsers.ParseKeyValueOpt。 moby/moby#49177 - Go-SDK: 棄用
pkg/parsers.ParseUintListMaximum、pkg/parsers.ParseUintList。這些工具僅供內部使用,並將在下一個版本中移除。 moby/moby#49222 - Go-SDK: 棄用
api/type.IDResponse,改用container.CommitResponse與container.ExecCreateResponse,目前它們是別名,但未來版本可能會成為獨立類型。此類型將在下一個版本中移除。 moby/moby#49446 - Go-SDK: 棄用
api/types/container.ContainerUpdateOKBody,改用UpdateResponse。此類型將在下一個版本中移除。 moby/moby#49442 - Go-SDK: 棄用
api/types/container.ContainerTopOKBody,改用TopResponse。此類型將在下一個版本中移除。 moby/moby#49442 - Go-SDK:
pkg/jsonmessage:修復對ProgressMessage與ErrorMessage的棄用,它們分別在 Docker v0.6.0 與 v0.7.1 中被棄用。 moby/moby#49447 - 將
GraphDriverData從api/types移至api/types/storage。舊類型已棄用,將在下一個版本中移除。 moby/moby#48108 - 將
RequestPrivilegeFunc從api/types移至api/types/registry。舊類型已棄用,將在下一個版本中移除。 moby/moby#48119 - 從
api/types移至api/types/container:NetworkSettings、NetworkSettingsBase、DefaultNetworkSettings、SummaryNetworkSettings、Health、HealthcheckResult、NoHealthcheck、Starting、Healthy、Unhealthy常數、MountPoint、Port、ContainerState、Container、ContainerJSONBase、ContainerJSON、ContainerNode。舊類型已棄用,將在下一個版本中移除。 moby/moby#48108 - 從
api/types移至api/types/image:ImageInspect、RootFS。舊類型已棄用,將在下一個版本中移除。 moby/moby#48108 GET /info端點中的ContainerdCommit.Expected、RuncCommit.Expected與InitCommit.Expected欄位已棄用,並將在 API v1.49 中省略。 moby/moby#48478api/types/registry:棄用ServiceConfig.AllowNondistributableArtifactsCIDRs與ServiceConfig.AllowNondistributableArtifactsHostnames欄位。這些欄位將在下一個版本中移除。 moby/moby#49065api/types/system/Commit.Expected欄位已棄用,不應再使用。 moby/moby#48478daemon/graphdriver:棄用GetDriver()。 moby/moby#48079libnetwork/iptables:棄用Passthrough。此函數僅供內部使用,並將在下一個版本中移除。 moby/moby#49115pkg/directory.Size()函數已棄用,將在下一個版本中移除。 moby/moby#48057registry:棄用APIEndpoint.TrimHostName;遠端名稱的主機名稱現在會無條件截斷。此欄位將在下一個版本中移除。 moby/moby#49005daemon.json中的allow-nondistributable-artifacts欄位。設定任一選項將不再生效,但會增加棄用警告日誌以提升對該棄用事項的關注。此警告計劃在下一個版本中轉為錯誤。 moby/moby#49065