Docker Engine 版本 28 發行說明
目錄
此頁面描述了 Docker Engine 版本 28 的最新更改、新增功能、已知問題和修復。
有關更多資訊,請參閱:
- 已棄用和已移除的功能,請參閱已棄用的引擎功能。
- 對引擎 API 的更改,請參閱引擎 API 版本歷史。
28.4.0
2025-09-03有關此版本中拉取請求和更改的完整列表,請參閱相關的 GitHub 里程碑:
新增
- 當鍵值對 (`"GODEBUG":"..."`) 存在於 docker 上下文元資料中時,允許 Docker CLI 設定 `GODEBUG` 環境變數。 docker/cli#6399
錯誤修復和增強
- 新增 `docker pull` 和 `docker image pull` 的 shell 自動補全功能。 docker/cli#6420
- 修復了 v28.3.3 中的一個迴歸問題,該問題可能導致客戶端未傳送 `X-Registry-Auth` 頭時 `docker push` 崩潰。 moby/moby#50738
- Windows:潛在地修復了拉取映象時出現“訪問被拒絕”錯誤的問題。 moby/moby#50871
- containerd 映象儲存:修復了在本地構建的非原生映象上呼叫 `docker history` 時,因 `snapshot X does not exist` 而失敗的問題。 moby/moby#50875
- containerd 映象儲存:修復了 `docker image prune` 發出正確的 `untag` 和 `delete` 事件,並僅列出已刪除映象的根摘要而不是每個 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
網路
- 修復了即時恢復時容器重啟緩慢的問題。 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` 型別來解析 `/events` 響應。 moby/moby#50762
- Go-SDK:cli/registry/client 包已棄用,並將在下一個版本中移除。 docker/cli#6313
28.3.3
2025-07-29有關此版本中拉取請求和更改的完整列表,請參閱相關的 GitHub 里程碑:
安全性
此版本修復了一個問題:在 firewalld 重新載入後,已釋出的容器埠可以直接從本地網路訪問,即使它們旨在僅透過迴環地址訪問。 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 里程碑:
錯誤修復和增強
- 修復了 `—use-api-socket` 在針對遠端守護程式時不正確工作的問題。 docker/cli#6157
- 修復了啟用除錯日誌時,會列印多餘的“otel error”日誌的問題。 docker/cli#6160
- 透過 SSH 連線到遠端守護程序時,對 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
- 將模型更新到 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 停止容器時,守護程式資料庫中(由 /containers/json API 使用)的容器狀態是最新的(在 API 響應之前)。 moby/moby#50136
- 修復了 `docker image inspect inspect` 遺漏空欄位的問題。 moby/moby#50135
- 修復了當 containerd 映象儲存被停用時,`docker images --tree` 未將映象標記為正在使用的問題。 docker/cli#6140
- 修復了 `docker pull/push` 在需要認證時,因提示登入憑據而在非互動模式下掛起的問題。 docker/cli#6141
- 修復了節點離開 Swarm 時可能存在的資源洩漏問題。 moby/moby#50115
- 修復了 v28.3.3 中的一個迴歸問題,該問題導致在登入其他登錄檔時,`docker pull` 的登入提示會顯示 Docker Hub 特定的提示。 docker/cli#6135
- 修復了在縮放具有放置偏好的服務後,Swarm 中所有新任務可能永遠停留在 PENDING 狀態的問題。 moby/moby#50211
- 移除了 Docker 23.0 中意外引入的未文件化、隱藏的頂層 `docker remove` 命令。 docker/cli#6144
- 驗證 registry-mirrors 配置作為 `dockerd --validate` 的一部分,並改進了無效映象的錯誤訊息。 moby/moby#50240
- `dockerd-rootless-setuptool.sh`:修復了當 subuid/subgid 系統要求不滿足時,指令碼靜默返回且不顯示錯誤訊息的問題。 moby/moby#50059
- containerd 映象儲存:修復了 `docker push` 未在遠端倉庫上建立標籤的問題。 moby/moby#50199
- containerd 映象儲存:改進了 `docker pull/push` 在令牌伺服器返回錯誤時的處理。 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` 有時可能導致守護程式崩潰的問題 (https://github.com/moby/moby/pull/49937)。
- 回滾:修復了在某些情況下,如果 Swarm 缺少入口網路,覆蓋網路的負載均衡器 IP 地址不會釋放的問題 (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"` 型別的網路時,縮短了守護程式的啟動時間。 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` 未將覆蓋的映象作為懸空映象持久化的問題。 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` 選項時,增加對繫結掛載源上的相對父路徑 (`../`) 的支援。 docker/cli#4966
- CDI 現在預設啟用。 moby/moby#49963
- 在 `docker info` 中顯示發現的 CDI 裝置。 docker/cli#6078
- `docker image rm`:新增 `--platform` 選項以從多平臺映象中移除一個變體。 docker/cli#6109
- containerd 映象儲存:BuildKit 初步支援在 Windows 上構建 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
- 修復了 CLI 在配置檔案 (`~/.docker/config.json`) 是相對符號連結時無法正確儲存的問題。 docker/cli#5282
- 修復了具有 `—restart always` 策略的 CDI 裝置容器在守護程序重啟時啟動失敗的問題。 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` 手冊頁的安裝位置。 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
- 新增守護程式選項 `“allow-direct-routing”` 以停用過濾直接傳送到容器的來自主機外部的資料包。 moby/moby#49832
- 如果網路建立請求中的 `EnableIPv4` 或 `EnableIPv6` 覆蓋了網路選項 `com.docker.network.enable_ipv4` 或 `com.docker.network.enable_ipv6`,則在 inspect 輸出中不顯示它們。 moby/moby#49866
- 修復了守護程式重啟後網路刪除可能失敗的問題,並顯示錯誤“has active endpoints”列出了空的端點名稱。 moby/moby#49901
- 修復了 `docker network inspect --verbose` 有時可能導致守護程式崩潰的問題。 moby/moby#49937
- 修復了在某些情況下,如果 Swarm 缺少入口網路,覆蓋網路的負載均衡器 IP 地址不會釋放的問題。 moby/moby#49948
- 提高了 NetworkDB 在繁忙叢集和丟包網路中的可靠性。 moby/moby#49932
- NetworkDB 可靠性和收斂速度的改進。 moby/moby#49939
API
- `DELETE /images/{name}` 現在支援 `platforms` 查詢引數。它接受 JSON 編碼的 OCI 平臺物件陣列,允許選擇特定平臺以刪除內容。 moby/moby#49982
- `GET /info` 現在包含 `DiscoveredDevices` 欄位。這是一個 `DeviceInfo` 物件陣列,每個物件提供裝置驅動程式發現的裝置的詳細資訊。 moby/moby#49980
Go SDK
- `api/types/container`:新增 `ContainerState` 和容器狀態常量。 moby/moby#49965
- `api/types/container`:將 `Summary.State` 更改為 `ContainerState`。 moby/moby#49991
- `api/types/container`:為健康狀態常量定義 `HealthStatus` 型別。 moby/moby#49876
- `api/types`:棄用已移至 `api/types/build` 的 `BuildResult`、`ImageBuildOptions`、`ImageBuildOutput`、`ImageBuildResponse`、`BuilderVersion`、`BuilderV1` 和 `BuilderBuildKi`。 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:棄用已移至 `api/types/swarm` 的 `NodeListOptions`、`NodeRemoveOptions`、`ServiceCreateOptions`、`ServiceUpdateOptions`、`RegistryAuthFromSpec`、`RegistryAuthFromPreviousSpec`、`ServiceListOptions`、`ServiceInspectOptions` 和 `SwarmUnlockKeyResponse`。 moby/moby#50027
- Go-SDK:api/types:棄用已移至 api/types/swarm 的 `SecretCreateResponse`、`SecretListOptions`、`ConfigCreateResponse`、`ConfigListOptions`。 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` 時可能導致守護程序崩潰的問題。 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
錯誤修復和增強
- 新增上下文名稱的 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` 核心模組的主機上阻止無根 Docker 設定的問題。 moby/moby#49727
- 修復了 firewalld 重新載入後,可能導致不需要的 iptables 規則被恢復且永不刪除的問題。 moby/moby#49728
- 改進了 `docker service scale` 的 CLI 自動補全功能。 docker/cli#5968
- `docker images --tree` 現在預設隱藏未標記和懸空的映象。 docker/cli#5924
- `docker system info` 將在無法建立與 Docker 守護程序的連線時提供退出程式碼。 docker/cli#5918
- containerd 映象儲存:修復了使用 BuildKit 構建時未發出 `image tag` 事件的問題。 moby/moby#49678
- containerd 映象儲存:改進了 `docker push/pull` 對遠端登錄檔錯誤的處理。 moby/moby#49770
- containerd 映象儲存:顯示非層映象 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#49586
- `GET /info` 現在返回一個 `FirewallBackend` 欄位,其中包含守護程式的防火牆配置資訊。 moby/moby#49761
Go SDK
- 將最低 Go 版本要求更新為 go1.23。 docker/cli#5868
- cli/command/context:從 JSON 輸出中移除臨時 `ContextType` 欄位。 docker/cli#5981
- 客戶端:儘可能將映象引用保持為規範格式。 moby/moby#49609
棄用
- API:已棄用:`GET /info` 響應中 `RegistryConfig` 結構中的 `AllowNondistributableArtifactsCIDRs` 和 `AllowNondistributableArtifactsHostnames` 欄位在 API v1.49 中已省略。 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:棄用已遷移到 `github.com/moby/go-archive` 的 `pkg/archive`。 moby/moby#49743
- Go-SDK:棄用已遷移到 `github.com/moby/sys/atomicwriter` 的 `pkg/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 之前建立的容器時啟動失敗的問題。 moby/moby#49626
- 修復了 `docker buildx prune` 在使用 `—min-free-space` 時可能出現的錯誤。 moby/moby#49623
- 修復了在關閉容器時守護程式日誌中出現虛假 `io: read/write on closed pipe` 錯誤。 moby/moby#49590
- 修復瞭如果 containerd socket 未立即可用,Docker 守護程序會過早失敗的問題。 moby/moby#49603
- 預設情況下,在容器的 `/proc` 和 `/sys` 中遮蔽 Linux 熱中斷資訊。 moby/moby#49560
- 更新 `contrib/check-config.sh` 以檢查更多與 iptables 相關的核心模組。 moby/moby#49622
- containerd 映象儲存:修復了透過 `—user` 傳遞的使用者 ID 處理中的整數溢位問題。 moby/moby#49652
- containerd 映象儲存:修復了守護程序日誌中記錄的虛假
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
不一致地報告雙棧埠對映的錯誤。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
- 允許在停用 IPv6 的主機上啟動守護程序,而無需
--ip6tables=false
。moby/moby#49525 - 修復了一個錯誤,該錯誤導致具有
--restart=always
且已釋出埠已被佔用的容器在緊密迴圈中重新啟動。moby/moby#49507 - 修復了 Swarm 入口的問題,該問題由 iptables 規則的順序不正確引起。moby/moby#49538
- 修復了從
--config-only
網路建立 swarm 範圍網路的錯誤。moby/moby#49521 - 修復了
docker network inspect
在守護程序重新啟動之前,為新建立的沒有特定 IPAM 配置的網路報告帶有 CIDR 字尾的 IPv6 閘道器的錯誤。moby/moby#49520 - 改進了當核心模組
ip_set
、ip_set_hash_net
和netfilter_xt_set
不可用時報告的錯誤。moby/moby#49524 - 將 Docker 的大多數 iptables 規則移出 filter-FORWARD 鏈,以便其他應用程式可以自由地追加必須遵循 Docker 規則的規則。moby/moby#49518
- 更新
--help
輸出和 man 頁面,以說明哪些選項僅適用於預設橋接網路。moby/moby#49522
錯誤修復和增強
- 修復了使用
"skip-tls-verify"
選項時docker context create
始終返回錯誤的錯誤。docker/cli#5850 - 修復了 shell 補全建議服務和節點的 ID 而非名稱的問題。docker/cli#5848
- 修復了當
docker exec/run
返回非零狀態時,意外地將退出狀態列印到標準錯誤輸出的問題。docker/cli#5854 - 修復了迴歸錯誤
protocol "tcp" is not supported by the RootlessKit port driver "slirp4netns"
。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
未為僅索引映象填充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 里程碑
- 已棄用和刪除的功能,請參閱棄用功能。
- Engine 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- 將
OOMScoreAdj
新增到docker service create
和docker stack
。docker/cli#5145 docker buildx prune
現在支援reserved-space
、max-used-space
、min-free-space
和keep-bytes
過濾器。moby/moby#48720- Windows:添加了對將 containerd 作為守護程序的子程序執行的支援,而不是使用系統安裝的 containerd。moby/moby#47955
網路
docker-proxy
二進位制檔案已更新,舊版本無法與更新的dockerd
一起使用。moby/moby#48132- 關閉了使用者態代理 (
docker-proxy
) 可以接受 TCP 連線,但在設定iptables
NAT 規則後會失敗的視窗。 - 不再使用可執行檔案
rootlesskit-docker-proxy
,它已從構建和分發中移除。
- 關閉了使用者態代理 (
- 從主機的
/etc/resolv.conf
讀取的 DNS 命名伺服器現在始終從主機的網路名稱空間訪問。moby/moby#48290- 當主機的
/etc/resolv.conf
不包含命名伺服器且沒有--dns
覆蓋時,除了預設橋接網路和構建容器之外,不再使用 Google 的 DNS 伺服器。
- 當主機的
- 橋接和 macvlan 網路中的容器介面現在使用隨機生成的 MAC 地址。moby/moby#48808
- 當介面啟動時,將傳送 Gratuitous ARP / Neighbour Advertisement 訊息,以便當 IP 地址被重用時,它們與新生成的 MAC 地址關聯。
- 預設橋接網路中的 IPv6 地址現在由 IPAM 分配,而不是從 MAC 地址派生。
- 棄用的 OCI
prestart
鉤子現在僅由構建容器使用。對於其他容器,網路介面在任務建立完成後新增到網路名稱空間,在容器任務啟動之前。moby/moby#47406 - 向
docker run
、docker container create
和docker network connect
添加了一個新的gw-priority
選項。Engine 將使用此選項來確定哪個網路為容器提供預設閘道器。在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
橋接網路中的埠釋出
dockerd
現在要求 Linux 核心支援ipset
。moby/moby#48596- 用於實現埠釋出和網路隔離的
iptables
和ip6tables
規則已進行 extensive 修改。這使得以下一些功能更改成為可能,並且是重構以在未來版本中啟用本機nftables
支援的第一步。moby/moby#48815 - 如果需要降級到守護程序的早期版本,將需要對新規則進行一些手動清理。最簡單和最可靠的方法是重新啟動主機,或者使用
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 ACCEPT
iptables -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
鏈中刪除每個橋接網路規則。例如,iptables -D DOCKER ! -i docker0 -o docker0 -j DROP
。
- 用於實現埠釋出和網路隔離的
- 修復了一個安全問題,該問題允許遠端主機直接連線到容器的已釋出埠。moby/moby#49325
- 修復了一個安全問題,該問題允許鄰近主機連線到對映到環回地址的埠。moby/moby#49325
- 修復了阻止埠釋出到鏈路本地地址的問題。moby/moby#48570
- 容器釋出的 UDP 埠現在可以透過主機的公共 IP 地址可靠地被其他網路上的容器訪問。moby/moby#48571
- Docker 現在僅在自身(sysctl
net.ipv6.conf.all.forwarding
和net.ipv6.conf.default.forwarding
)啟用 IP 轉發時才將ip6tables
過濾器表中的FORWARD
鏈策略設定為DROP
。這與現有的 IPv4 行為一致。moby/moby#48594- 如果您的主機上啟用了 IPv6 轉發,但您依賴 Docker 將 ip6tables filter-FORWARD 策略設定為
DROP
,您可能需要更新主機的配置以確保其安全。
- 如果您的主機上啟用了 IPv6 轉發,但您依賴 Docker 將 ip6tables filter-FORWARD 策略設定為
- 現在在
DOCKER
iptables 鏈中阻止了對未使用p
/-publish
暴露的容器埠的直接路由訪問。moby/moby#48724- 如果主機的預設 iptables filter-FORWARD 策略之前保留為
ACCEPT
,並且仍然需要從遠端主機直接路由訪問容器的未釋出埠,則選項為:- 釋出您需要的埠。
- 使用下面描述的新
gateway_mode_ipv[46]=nat-unprotected
。
- 釋出到主機地址的容器埠將繼續透過這些主機地址進行訪問,使用 NAT 或使用者態代理。
- 未釋出的容器埠仍然可以透過容器的 IP 地址從 Docker 主機直接訪問。
- 如果主機的預設 iptables filter-FORWARD 策略之前保留為
- 使用
gateway_mode_ipv[46]=routed
建立的網路現在可以從同一 Docker 主機上執行的其他橋接網路以及主機外部訪問。moby/moby#48596 - 橋接驅動程式選項
com.docker.network.bridge.gateway_mode_ipv4
和com.docker.network.bridge.gateway_mode_ipv6
現在接受模式nat-unprotected
。moby/moby#48597nat-unprotected
類似於預設的nat
模式,但沒有設定每個埠/協議規則。這意味著容器上的任何埠都可以透過從遠端主機直接路由進行訪問。
- 橋接驅動程式選項
com.docker.network.bridge.gateway_mode_ipv4
和com.docker.network.bridge.gateway_mode_ipv6
現在接受模式isolated
,當網路也是internal
時。moby/moby#49262- 通常,在
internal
網路中,會為橋接裝置分配一個地址。因此,Docker 主機上的程序可以訪問該網路,網路中的容器可以訪問在該橋接地址上監聽的主機服務(包括監聽“任何”主機地址0.0.0.0
或::
的服務)。 - 使用閘道器模式
isolated
建立的internal
橋接網路在 Docker 主機上沒有地址。
- 通常,在
- 當埠對映包含由於使用
--gateway_mode_ipv[46]
停用主機 NAT 而無法使用的主機 IP 地址或埠號時,容器建立將不再失敗。如果網路連線或斷開時閘道器端點發生變化,可能需要未使用的欄位。將記錄有關未使用的欄位的訊息。moby/moby#48575 - 當用戶態代理啟用時,不要為容器自己的已釋出埠建立 iptables nat-POSTROUTING 偽裝規則。moby/moby#48854
IPv6
- 新增
docker network create
選項--ipv4
。要停用網路的 IPv4 地址分配,請使用docker network create --ipv4=false [...]
。docker/cli#5599 - 守護程序選項
--ipv6
(daemon.json
中的"ipv6": true
)現在可以與fixed-cidr-v6
一起使用。moby/moby#48319 - IPAM 現在處理大於 "/64" 的子網。moby/moby#49223
- 現在停用了對分配給橋接網路所屬橋接器的地址的重複地址檢測 (DAD)。moby/moby#48609
- 修改了
host-gateway
,以相容僅 IPv6 網路。moby/moby#48807- 當在
--add-host
選項中使用特殊值host-gateway
代替地址時,它會被替換為 Docker 主機上的地址,以便可以透過名稱引用主機。使用的地址屬於預設橋接器(通常是docker0
)。到目前為止,它始終是 IPv4 地址,因為橋接網路上的所有容器都具有 IPv4 地址。 - 現在,如果預設橋接網路上啟用了 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 環回地址作為不安全登錄檔。moby/moby#48540
- 添加了對
dockerd
的 Cobra 生成的完成指令碼的支援。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 - 修復了一個錯誤,該錯誤導致名稱與另一個容器 ID 匹配的容器在守護程序啟動時無法恢復。moby/moby#48669
- 修復了
docker ps
顯示的一些 IPv6 地址未正確用方括號括起來的問題。docker/cli#5468 - 修復了
docker run
期間無法取消映象拉取的問題。docker/cli#5645 - 修復了以 Windows 服務執行時守護程序的錯誤處理,以防止不乾淨的退出。moby/moby#48518
- 修復了使用
--attach stdout
或--attach stderr
與stdin
相比,docker run
的輸出不一致的問題。docker run --attach stdin
現在在容器退出時退出。docker/cli#5662 - 修復了使用 NSS 模組支援的
subid
進行無根 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
- 改進了守護程序配置中
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
未將替換的映象保留為懸空映象的問題。moby/moby#48316 - containerd 映象儲存:使
docker load --platform
在請求的平臺未載入時返回錯誤。moby/moby#48718 - 修復了
--link
選項的驗證。docker/cli#5739 - 添加了網路診斷埠守護程序配置選項的驗證。moby/moby#49305
- 除非明確配置,否則在不需要閘道器的情況下不再為閘道器保留 IP 地址。具體來說,具有選項
com.docker.network.bridge.inhibit_ipv4
的“內部”橋接網路,沒有父介面的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
) 推斷配置的問題。moby/moby#48319 - 刪除了在 26.1.0 版本中引入的用於控制從 Windows 容器轉發到外部 DNS 解析器的功能標誌
windows-dns-proxy
,以使nslookup
工作。它在 27.0.0 版本中預設啟用。moby/moby#48738 - 刪除了用於 SCTP 校驗和的
iptables
mangle 規則。可以透過在守護程序的環境中設定DOCKER_IPTABLES_SCTP_CHECKSUM=1
來重新啟用該規則。此覆蓋將在未來版本中移除。moby/moby#48149 - 在大多數情況下,連線到橋接網路的速度更快。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)
man 頁的規範來源已移回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
,允許指定自定義 OTe1 跟蹤選項。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
:移至內部。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
欄位,其中包含映象索引中包含的子清單資訊。這包括平臺特定清單和構建證明。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- 改進了容器調整大小和執行調整大小上無效寬度/高度的錯誤。moby/moby#48679
POST /containers/create
端點現在在響應中包含警告,當設定容器範圍的VolumeDriver
選項並結合透過Mounts
定義的卷時,因為VolumeDriver
選項對這些卷沒有影響。此警告以前由 CLI 生成。moby/moby#48789- containerd 映象儲存:
GET /images/json
和GET /images/{name}/json
響應現在包含Descriptor
欄位,其中包含映象目標的 OCI 描述符。新欄位僅在守護程序提供多平臺映象儲存時填充。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- 使用者定義的橋接網路需要啟用 IPv4 或 IPv6 地址分配。對於預設橋接網路 (
docker0
) 無法停用 IPv4。moby/moby#48323 macvlan
和ipvlan
網路可以建立時停用 IPv4、IPv6 或兩種地址族的地址分配。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
現在返回一個ImageManifestDescriptor
欄位,該欄位與/containers/{name}/json
中的同名欄位匹配。此欄位僅在守護程序提供多平臺映象儲存時填充。moby/moby#49407
已移除
- Fluent 記錄器選項
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 守護程序的--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 - 移除對已棄用的外部圖形驅動程式外掛的支援。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 模組現在按需載入,不再在守護程序啟動期間載入,這使得這些欄位過時。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
的輔助函式,應改用config.Validate
。moby/moby#48985 - 棄用
pkg/reexec
。此包已棄用並移至單獨的模組。請改用github.com/moby/sys/reexec
。moby/moby#49129 - 棄用推送不可分發工件的配置。docker/cli#5724
- 棄用
--allow-nondistributable-artifacts
守護程序標誌和daemon.json
中對應的allow-nondistributable-artifacts
欄位。設定任何一個選項將不再生效,但會新增棄用警告日誌。moby/moby#49065 - 棄用
GET /info
API 響應中的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
的別名,應改用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