已淘汰的 Docker Engine 功能

目錄

此頁面概述了 Engine 中已淘汰的功能。 不包含包裝和支援的 (Linux) 發行版本的變更。 若要瞭解 Linux 發行版本的支援終止,請參閱版本資訊

功能淘汰政策

隨著 Docker 的變更,有時可能需要移除現有功能或以新功能取代。 在移除現有功能之前,它會在文件中標示為「已淘汰」,並至少會在一個穩定版本中保留,除非另有明確說明。 之後可能會將其移除。

使用者應注意每個版本的已淘汰功能清單,並盡快規劃從這些功能遷移,以及(如果適用)遷移到替代功能。

已淘汰的引擎功能

下表概述了已淘汰功能的目前狀態

  • **已淘汰**: 此功能標示為「已淘汰」,不應再使用。

    此功能可能會在未來的版本中被移除、停用或更改行為。「已棄用」欄位包含該功能被標記為已棄用的版本,而「移除」欄位則包含預計移除該功能的版本。如果「移除」欄位中未包含版本,則表示尚未決定移除的版本。

  • 已移除:該功能已被移除、停用或隱藏。

    詳細資訊請參閱連結的章節。某些功能是「軟性」棄用,這表示它們為了向後相容性以及允許使用者遷移到替代方案而仍然保持功能。在這種情況下,可能會顯示警告,使用者不應依賴此功能。

狀態功能已棄用移除
已棄用映像檔檢查中的非標準欄位v27.0v28.0
已棄用API CORS 標頭v27.0v28.0
已棄用Graphdriver 外掛程式 (實驗性)v27.0v28.0
已棄用未經驗證的 TCP 連線v26.0v28.0
已棄用映像檔檢查中的 `Container` 和 `ContainerConfig` 欄位v25.0v26.0
已棄用淘汰舊版 APIv25.0v26.0
已移除網路別名欄位中的容器簡短 IDv25.0v26.0
已棄用`docker search` 上的 `IsAutomated` 欄位和 `is-automated` 篩選器v25.0v26.0
已移除logentries logging driver(日誌驅動程式)v24.0v25.0
已移除守護行程的 OOM 分數調整v24.0v25.0
已移除BuildKit 建置資訊v23.0v24.0
已棄用Linux 映像檔的舊版建置器v23.0-
已棄用舊版建置器備援v23.0-
已移除CentOS 7 和 RHEL 7 上的 Btrfs 儲存驅動程式v20.10v23.0
已移除支援加密的 TLS 私密金鑰v20.10v23.0
已移除Kubernetes 堆疊和上下文支援v20.10v23.0
已棄用從不符合規範的映像檔登錄檔提取映像檔v20.10-
已移除Windows 上的 Linux 容器 (LCOW)v20.10v23.0
已棄用使用 cgroups v1 的 BLKIO 權重選項v20.10-
已移除核心記憶體限制v20.10v23.0
已移除使用外部鍵值儲存的傳統 Swarm 和覆蓋網路v20.10v23.0
已移除支援用於驗證的舊版 ~/.dockercfg 設定檔v20.10v23.0
已棄用CLI 外掛程式支援v20.10-
已棄用Dockerfile 舊版 `ENV name value` 語法v20.10-
已移除`docker build --stream` 旗標 (實驗性)v20.10v20.10
已棄用`fluentd-async-connect` 記錄選項v20.10-
已移除實驗性 CLI 功能的設定選項v19.03v23.0
已棄用使用映像檔資訊清單 v2 結構描述 1 推送和提取v19.03v27.0
已移除`docker engine` 子命令v19.03v20.10
已移除頂層 `docker deploy` 子命令 (實驗性)v19.03v20.10
已移除使用 "dab" 檔案的 `docker stack deploy` (實驗性)v19.03v20.10
已移除支援 `overlay2.override_kernel_check` 儲存選項v19.03v24.0
已移除AuFS 儲存驅動程式v19.03v24.0
已移除舊版「overlay」儲存驅動程式v18.09v24.0
已移除裝置映射器儲存驅動程式v18.09v25.0
已移除在引擎標籤中使用保留的命名空間v18.06v20.10
已移除`--disable-legacy-registry` 覆寫守護行程選項v17.12v19.03
已移除與 V1 登錄檔互動v17.06v17.12
已移除非同步 `service create` 和 `service update` 作為預設值v17.05v17.10
已移除`dockerd` 上的 `-g` 和 `--graph` 旗標v17.05v23.0
已棄用NetworkSettings 中的頂層網路屬性v1.13v17.12
已移除`/images/json` 端點的 `filter` 選項v1.13v20.10
已移除`repository:shortid` 映像檔參考v1.13v17.12
已移除`docker daemon` 子命令v1.13v17.12
已移除引擎標籤中具有衝突值的重複金鑰v1.13v17.12
已棄用Dockerfile 中的 `MAINTAINER`v1.13-
已棄用沒有版本的 API 呼叫v1.13v17.12
已移除沒有 `d_type` 支援的覆蓋/覆蓋2 備份檔案系統v1.13v17.12
已移除`docker search` 上的 `--automated` 和 `--stars` 旗標v1.12v20.10
已棄用`--help` 的 `-h` 簡寫v1.12v17.09
已移除`docker login` 上的 `-e` 和 `--email` 旗標v1.11v17.06
已棄用`docker run` 上 `--security-opt` 旗標的分隔符號 (`:`)v1.11v17.06
已棄用API 中模糊的事件欄位v1.10-
已移除`docker tag` 上的 `-f` 旗標v1.10v1.12
已移除API 容器啟動時的 HostConfigv1.10v1.12
已移除`docker ps` 上的 `--before` 和 `--since` 旗標v1.10v1.12
已移除驅動程式特定的記錄標籤v1.9v1.12
已移除Docker Content Trust ENV 密碼片語變數名稱變更v1.9v1.12
已移除`/containers/(id or name)/copy` 端點v1.8v1.12
已移除LXC 內建 exec 驅動程式v1.8v1.10
已移除舊的命令列選項v1.8v1.10
已移除`dockerd` 上的 `--api-enable-cors` 旗標v1.6v17.09
已移除`docker commit` 上的 `--run` 旗標v0.10v1.13
已移除`docker import` 中的三個參數形式v0.6.7v1.12

映像檔檢查中的非標準欄位

在 v27.0 版中已棄用 目標移除版本:v28.0

docker image inspect 中顯示(以及由 GET /images/{name}/json API 端點返回)的 Config 欄位返回了額外的欄位,這些欄位不屬於映像檔的設定,也不屬於 Docker 映像檔規格OCI 映像檔規格Graphdriver 外掛程式 (實驗性)

在 v27.0 版中已棄用 在 v27.0 版中預設停用 目標移除版本:v28.0

Graphdriver 外掛程式 是一個實驗性功能,允許使用自定義儲存驅動程式擴展 Docker 引擎,用於儲存映像檔和容器。此功能自推出以來就沒有維護,並且在未來的版本中將不再支援。

在 v27.0 中,預設停用對 graphdriver 外掛程式的支援,並將在 v28.0 中移除。v27.0 中提供了一個 DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS 環境變數來重新啟用此功能。必須在守護行程式的環境中將此環境變數設定為非空值。

DOCKERD_DEPRECATED_GRAPHDRIVER_PLUGINS 環境變數以及對 graphdriver 外掛程式的支援將在 v28.0 中移除。建議此功能的使用者改為將 Docker 引擎設定為使用 containerd 映像檔儲存快照器API CORS 標頭

在 v27.0 版中已棄用 目標移除版本:v28.0

Docker 守護行程式的 api-cors-header 設定選項不安全,因此已棄用並排定移除。錯誤地設定此選項可能會讓未經身份驗證的跨來源請求被守護行程式接受。

從 Docker Engine v27.0 開始,仍然可以設定此旗標,但除非環境變數 DOCKERD_DEPRECATED_CORS_HEADER 也設定為非空值,否則它沒有作用。

此旗標將在 v28.0 中完全移除。

這對於依賴此選項從瀏覽器存取 Docker API 的授權外掛程式和其他程式來說是一個重大變更。如果您需要透過瀏覽器存取 API,請使用反向代理。

未經驗證的 TCP 連線

在 v26.0 版中已棄用 目標移除版本:v28.0

將 Docker 守護行程式設定為監聽 TCP 位址將需要強制執行 TLS 驗證。此變更旨在透過防止未經授權的使用者透過潛在不安全的網路存取 Docker 守護行程式來確保通訊安全。此強制性 TLS 要求適用於除 tcp://localhost 之外的所有 TCP 位址。

在 27.0 版及更高版本中,如果還將守護行程式設定為接受透過 TCP 的遠端連線,則指定 --tls=false--tlsverify=false CLI 旗標將導致守護行程式無法啟動。這也適用於 daemon.json 中的等效設定選項。

為了方便透過 TCP 遠端存取 Docker 守護行程式,您需要實作 TLS 驗證。這可透過加密傳輸中的資料並提供相互驗證機制來保護連線安全。

對於不需要遠端守護行程存取的環境,我們建議將 Docker 守護行程綁定到 Unix 通訊端。對於需要遠端存取且無法使用 TLS 加密的守護行程,您可以考慮使用 SSH 作為替代方案。

如需更多資訊、協助以及設定 Docker 守護行程 TLS(或 SSH)的步驟說明,請參閱 保護 Docker 守護行程通訊端

映像檔檢查中的 `Container` 和 `ContainerConfig` 欄位

**已於版本 v25.0 棄用** **預計於版本 v26.0 移除**

docker inspect 返回的 ContainerContainerConfig 欄位大多是傳統(非 BuildKit)映像檔建構器的實作細節。這些欄位不具可攜性,且在使用基於 BuildKit 的建構器(自 v23.0 起預設啟用)時為空。這些欄位已於 v25.0 棄用,並將從 v26.0 開始省略。如果需要映像檔的設定,您可以從 Config 欄位取得。

淘汰舊版 API

**已於版本 v25.0 棄用** **預計於版本 v26.0 移除**

Docker 守護行程提供版本化的 API,以向後相容舊用戶端。Docker 用戶端可以執行 API 版本協商,以選擇守護行程支援的最新 API 版本(必要時降級到舊版 API)。API 版本協商是在 Docker v1.12.0(API 1.24)中引入的,在此之前的用戶端使用固定的 API 版本。

直到 v25.0 的 Docker Engine 版本都支援所有 API 版本,包含給定平台穩定版本中的所有 API 版本。對於 Linux 上的 Docker 守護行程,最早支援的 API 版本為 1.12(對應 Docker Engine v1.0.0),而對於 Windows 上的 Docker 守護行程,最早支援的 API 版本為 1.24(對應 Docker Engine v1.12.0)。

支援舊版 API 版本(在目前版本的 Docker Engine 上提供舊版 API 版本)主要目的是為了與最新但仍支援的用戶端版本相容,這是一種常見的情況(Docker 守護行程可能會更新到最新版本,但並非所有用戶端都可能已更新,反之亦然)。對於在此之前的 API 版本(由 Docker 守護行程的 EOL 版本提供的 API 版本)的支援,我們將盡力而為。

使用舊版 API 版本的情況很少見,而且支援舊版 API 版本會導致相當大的複雜性(Docker 1.0.0 已於 10 年前發布)。因此,我們將開始棄用對舊版 API 版本的支援。

Docker Engine v25.0 預設會停用早於 1.24 的 API 版本(使 Linux 和 Windows 守護行程之間支援的最低 API 版本一致)。當與使用早於 1.24 的 API 版本的用戶端連線時,守護行程會傳回錯誤。以下範例將 Docker CLI 設定為使用 API 版本 1.23,這會產生錯誤

DOCKER_API_VERSION=1.23 docker version
Error response from daemon: client version 1.23 is too old. Minimum supported API version is 1.24,
upgrade your client to a newer version

引入了一個環境變數 (DOCKER_MIN_API_VERSION),允許在守護行程中重新啟用舊版 API 版本。此環境變數必須設定在守護行程的環境中(例如,透過 systemd 覆寫檔案),且指定的 API 版本必須受守護行程支援(Linux 上為 1.12 或更高版本,Windows 上為 1.24 或更高版本)。

對低於 1.24 的 API 版本的支援將在 Docker Engine v26 中永久移除,後續版本中支援的最低 API 版本將會逐步提高。

除非在無法更新舊用戶端且必須支援這些用戶端的特殊情況下,否則我們不建議依賴 DOCKER_MIN_API_VERSION 環境變數。

網路別名欄位中的容器簡短 ID

**已於版本 v25.0 棄用** **將於版本 v26.0 移除**

docker inspect 返回的 Aliases 欄位在容器啟動後包含容器的簡短 ID。此行為已於 v25.0 棄用,但會保留到下一個版本 v26.0。從該版本開始,Aliases 欄位將僅包含透過 docker container createdocker run 旗標 --network-alias 設定的別名。

v25.0 中已引入一個新的欄位 DNSNames,其中包含容器名稱(如果已指定)、主機名稱、網路別名以及容器簡短 ID,應該使用它來代替 Aliases 欄位。

**已於版本 v25.0 棄用** **預計於版本 v26.0 移除**

Docker Hub 的搜尋 API 已棄用 is_automated 欄位。因此,映像檔搜尋中的 IsAutomated 欄位在未來將一律設定為 false,搜尋 "is-automated=true" 將不會產生任何結果。

在 v25.0 中,AUTOMATED 欄位已從預設的 docker searchdocker image search 輸出中移除,對應的 IsAutomated 樣板選項將在 v26.0 中移除。

Logentries 記錄驅動程式

**已於版本 v24.0 棄用** **已於版本 v25.0 移除**

logentries 服務 SaaS 已於 2022 年 11 月 15 日關閉,導致此記錄檔驅動程式無法運作。使用者不應再使用此記錄檔驅動程式,且該驅動程式已在 Docker 25.0 中移除。升級後,使用此記錄檔驅動程式的現有容器會遷移為使用「local」記錄檔驅動程式。

守護行程的 OOM 分數調整

**已於版本 v24.0 棄用** **已於版本 v25.0 移除**

新增了 oom-score-adjust 選項,以防止守護行程在其他行程之前被 OOM 終止。新增此選項主要是為了方便起見,因為將守護行程作為 systemd 單元執行尚未普及。

讓守護行程自行設定限制並非最佳做法,最好由啟動守護行程的行程管理員來處理。

Docker v20.10 和更新版本不再預設調整守護行程的 OOM 分數,而是將 OOM 分數設定為套件隨附的 systemd 單元 (OOMScoreAdjust)。

目前依賴此功能的使用者,建議在啟動守護行程時使用 systemd 或其他方法調整守護行程的 OOM 分數。

BuildKit 建置資訊

**已於版本 v23.0 棄用** **已於版本 v24.0 移除**

建構資訊 結構已在 BuildKit v0.10.0 中引入,並使用建構中繼資料產生,讓您可以查看建構所使用的所有來源(映像檔、Git 儲存庫),以及它們的確切版本和傳遞給建構的配置。如果產生了映像檔配置,則此資訊也會嵌入到映像檔配置中。

Linux 映像檔的舊版建置器

已於版本 v23.0 中棄用

Docker v23.0 現在預設使用 BuildKit 來建構 Linux 映像檔,並使用 Buildx CLI 元件來執行 docker build。透過此變更,docker build 現在公開了 BuildKit 提供的所有進階功能,而這些功能先前只能透過 docker buildx 子命令使用。

使用我們的 .deb.rpm 套件安裝 docker CLI 時,會自動安裝 Buildx 元件,並且在 download.docker.com 和 Docker Hub 上的 docker/buildx-bin 映像檔Buildx 章節Docker DesktopBuildKit 問題追蹤器

用於建構 Windows 映像檔的傳統建構器

BuildKit(尚)不支援建構 Windows 映像檔,docker build 繼續使用傳統建構器在 Windows 惡魔程式上建構原生 Windows 映像檔。

舊版建置器備援

已於版本 v23.0 中棄用

Docker v23.0 現在預設使用 BuildKit 來建構 Linux 映像檔,這需要 Buildx 元件才能使用 BuildKit 建構映像檔。在某些情況下,Buildx 元件可能無法使用,因此無法使用 BuildKit。

為了順利過渡到 BuildKit 作為預設建構器,Docker v23.0 在某些情況下會自動回退,或者產生錯誤以協助使用者解決問題。

如果使用者未明確選擇使用 BuildKit(即未設定 DOCKER_BUILDKIT=1),CLI 會自動回退到傳統建構器,但會印出棄用警告。

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docker-docs.dev.org.tw/go/buildx/

如果使用靜態二進制檔案安裝 docker CLI,並且未安裝或未正確安裝 Buildx 元件,則可能會發生這種情況。此回退機制將在未來的版本中移除,因此我們建議您 安裝 Buildx 元件

我們建議您 安裝 Buildx 元件傳統建構器已被棄用,因此在未來的版本中將不再能夠自動回退或選擇停用 BuildKit。

CentOS 7 和 RHEL 7 上的 Btrfs 儲存驅動程式

已於版本 v23.0 中移除

CentOS 和 RHEL 曾將 btrfs 儲存驅動程式作為技術預覽提供,但自 Red Hat Enterprise Linux 7.4 版本 起已棄用,並在 CentOS 8 和 RHEL 8 中移除。建議 CentOS 上使用 btrfs 儲存驅動程式的用戶遷移到其他儲存驅動程式,例如現在預設的 overlay2。 Docker 23.0 繼續提供 btrfs 儲存驅動程式,允許用戶遷移到替代驅動程式。 Docker 的下一個版本將不再提供此驅動程式。

支援加密的 TLS 私密金鑰

棄用版本:v20.10

已於版本 v23.0 中移除

已棄用並移除使用加密的 TLS 私鑰的功能。 Golang 已棄用對舊版 PEM 加密的支援(如 RFC 1423 中所指定),因為其設計不安全(請參閱 https://go-review.googlesource.com/c/go/+/264159)。

此功能允許使用提供密碼的加密私鑰,但沒有提供額外的安全性,因為已知加密已被破解,且金鑰與密碼一起存放在檔案系統中。建議用戶解密私鑰,並以未加密的方式儲存以繼續使用。

Kubernetes 堆疊和上下文支援

**棄用版本:v20.10** **移除版本:v23.0**

隨著 Compose on Kubernetes 的棄用,CLI 中 stackcontext 命令的 Kubernetes 支援已被移除,並且與此功能相關的選項現在將被忽略或可能產生錯誤。

以下命令列標誌已從 docker context 子命令中移除

docker context inspect 子命令產生的輸出不再包含新上下文環境的 StackOrchestratorKubernetes 端點資訊。

以下命令列標誌已從 docker stack 子命令中移除

DOCKER_STACK_ORCHESTRATORDOCKER_ORCHESTRATORKUBECONFIG 環境變數,以及 ~/.docker/config.json CLI 設定檔中的 stackOrchestrator 選項不再使用,並將被忽略。

從不符合規範的映像檔登錄檔提取映像檔

棄用版本:v20.10

Docker Engine v20.10 及更高版本包含優化,可在提取之前驗證本地映像快取中的映像是否需要更新,防止 Docker Engine 發出不必要的 API 請求。這些優化要求容器映像倉庫符合 開放容器倡議發行規範Windows 上的 Linux 容器 (LCOW) (實驗性)

**棄用版本:v20.10** **移除版本:v23.0**

在 Docker 17.09 中,作為技術預覽引入了在 Windows 上運行 Linux 容器 (LCOW) 的實驗性功能。雖然在引入之後進行了許多增強,但該功能從未達到完整性,並且現在已停止開發,轉而支援在 WSL2 中原生運行 Docker。

建議想要在 Windows 主機上運行 Linux 工作負載的開發者使用 Docker Desktop with WSL2 來取代。

使用 cgroups v1 的 BLKIO 權重選項

棄用版本:v20.10

在使用 cgroups v1 時,指定區塊 I/O 權重(`docker run --blkio-weight` 和 `docker run --blkio-weight-device`)現在被標記為已棄用,因為 Linux 核心 v5.0 及更高版本中已移除對應的功能 已於 Linux 核心 v5.0 及更高版本中移除。在使用 cgroups v2 時,`--blkio-weight` 選項是使用 `io.weight` 來實作。

核心記憶體限制

**棄用版本:v20.10** **移除版本:v23.0**

指定核心記憶體限制(`docker run --kernel-memory`)已不再支援,因為 Linux 核心在 v5.4 中已棄用 `kmem.limit_in_bytes`。OCI 執行時期規格現在將此選項(以及 `--kernel-memory-tcp`)標記為 "不建議使用"

**注意**

雖然在 Docker 中尚未棄用(但),但 OCI 執行時期規格也棄用了 `memory.kmem.tcp.limit_in_bytes` 選項。當使用 `runc` 作為執行時期時,此選項將無效。Linux 核心並未明確棄用此功能,`runc` 問題追蹤器中有一個追蹤票證,用於確定是否應恢復此選項,或者這是 Linux 核心維護人員的疏忽(請參閱 opencontainers/runc#3174)。

`memory.kmem.tcp.limit_in_bytes` 選項僅在 cgroups v1 中支援,在使用 cgroups v2 的安裝上則不支援。此選項僅受 API 支援,未在 `docker` 命令列中公開。

使用叢集存放區的 Classic Swarm 和覆蓋網路

**棄用版本:v20.10** **移除版本:v23.0**

獨立(“經典”)Swarm 已被棄用,同時也棄用了使用外部鍵/值儲存區的覆蓋網路。對應的 `--cluster-advertise`、`--cluster-store` 和 `--cluster-store-opt` 守護行程選項已移除。

支援舊版 `~/.dockercfg` 設定檔

**棄用版本:v20.10** **移除版本:v23.0**

Docker CLI 直到 v1.7.0 都使用 `~/.dockercfg` 檔案來儲存驗證到登錄檔(`docker login`)後的憑證。Docker v1.7.0 使用位於 `~/.docker/config.json` 的新 CLI 設定檔取代了此檔案。實作新的設定檔時,舊檔案(和檔案格式)被保留作為後備方案,以協助現有使用者遷移到新檔案。

鑑於舊的檔案格式鼓勵不安全的憑證儲存方式(憑證未加密儲存),而且自 Docker v1.7.0 以來,沒有任何版本的 CLI 建立過此檔案,因此已移除對此檔案及其格式的支援。

實驗性 CLI 功能的設定選項

棄用版本:v19.03

已於版本 v23.0 中移除

`DOCKER_CLI_EXPERIMENTAL` 環境變數和 CLI 設定檔中對應的 `experimental` 欄位已棄用。實驗性功能預設為啟用狀態,這些設定選項已不再起作用。

從 v23.0 開始,Docker CLI 在 `docker version` 的輸出中不再為用戶端列印 `Experimental`,並且已從 JSON 格式中移除此欄位。

CLI 外掛程式支援

棄用版本:v20.10

CLI 外掛程式 API 現已被標記為已棄用。

Dockerfile 舊版 `ENV name value` 語法

棄用版本:v20.10

Dockerfile 的 `ENV` 指令允許使用 `ENV name=value` 或 `ENV name value` 設定值。後者(`ENV name value`)的形式可能模稜兩可,例如,以下定義了一個單一環境變數(`ONE`),其值為 `"TWO= THREE=world"`,但可能意圖設定三個環境變數

ENV ONE TWO= THREE=world

此格式也不允許在 Dockerfile 的單個 `ENV` 行中設定多個環境變數。

不鼓勵使用 `ENV name value` 語法,並可能在未來的版本中移除。建議使用者將 Dockerfiles 更新為使用 `ENV name=value` 語法,例如

ENV ONE="" TWO="" THREE="world"

`docker build --stream` 旗標 (實驗性)

**棄用版本:v20.10** **移除版本:v20.10**

Docker v17.07 在 `docker build` 上引入了一個實驗性的 `--stream` 旗標,允許將建置上下文以增量方式傳送到守護行程,而不是無條件地傳送整個建置上下文。

此功能已作為 BuildKit 的一部分重新實作,BuildKit 預設使用串流方式,使用傳統建構器時,--stream 選項將被忽略,並顯示一則淘汰警告。

建議想要使用此功能的使用者,透過設定 DOCKER_BUILDKIT=1 環境變數,或透過 daemon 或 CLI 設定檔來啟用 BuildKit。

`fluentd-async-connect` 記錄選項

棄用版本:v20.10

Fluentd 記錄驅動程式的 --log-opt fluentd-async-connect 選項已淘汰,建議改用 --log-opt fluentd-async。 如果使用舊選項,daemon 記錄中會記錄一則淘汰訊息。

fluent#New: AsyncConnect is now deprecated, use Async instead

建議使用者未來使用 fluentd-async 選項,因為在未來的版本中將會移除對舊選項的支援。

使用映像檔資訊清單 v2 結構描述 1 推送和提取

棄用版本:v19.03

在版本 v26.0 中預設停用

預計在版本 v27.0 中移除

映像檔資訊清單 v2 schema 1 和「Docker Image v1」格式已淘汰,建議改用 v2 schema 2OCI 映像檔規格

Docker v26.0 中新增了一個環境變數 (DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE),允許在 daemon 中重新啟用對這些映像檔格式的支援。必須在 daemon 的環境中將此環境變數設定為非空值(例如,透過 systemd 覆寫檔案`docker engine` 子命令

棄用版本:v19.03

在版本 v20.10 中移除

docker engine activatedocker engine checkdocker engine update 提供了另一種安裝方法,可以使用基於映像檔的 Docker Engine 發行版,將 Docker Community 引擎升級到 Docker Enterprise。

此功能僅在 Linux 上可用,並且僅在本地節點上執行時可用。考量到此功能的限制以及此功能未被廣泛採用,docker engine 子命令將被移除,建議透過標準套件管理器進行安裝。

頂層 `docker deploy` 子命令 (實驗性)

棄用版本:v19.03

在版本 v20.10 中移除

頂層 docker deploy 命令(使用「Docker 應用程式套件」( .dab ) 檔案格式)在 Docker 1.13 / 17.03 中作為實驗性功能引入,但已被使用 docker stack deploy 子命令支援 Docker Compose 檔案所取代。

使用 "dab" 檔案的 `docker stack deploy` (實驗性)

棄用版本:v19.03

在版本 v20.10 中移除

由於此功能沒有進行任何開發,也沒有積極使用該檔案格式,因此將移除對 DAB 檔案格式和頂層 docker deploy 命令(在 19.03 中預設隱藏)的支援,建議改用使用 Compose 檔案的 docker stack deploy

支援 `overlay2.override_kernel_check` 儲存選項

**在版本 v19.03 中淘汰** **在版本 v24.0 中移除**

此 daemon 設定選項停用了用於偵測核心是否支援具有多個 lower dirs 的 OverlayFS 的 Linux 核心版本檢查,這是 overlay2 儲存驅動程式所需的。從 Docker v19.03.7 開始,偵測已得到改進,不再依賴核心*版本*,因此不再使用此選項。

AuFS 儲存驅動程式

**在版本 v19.03 中淘汰** **在版本 v24.0 中移除**

aufs 儲存驅動程式已淘汰,建議改用 overlay2,並已在 Docker Engine v24.0 中移除。 aufs 儲存驅動程式的使用者必須在升級到 Docker Engine v24.0 之前遷移到其他儲存驅動程式,例如 overlay2

aufs 儲存驅動程式有助於在不支援 OverlayFS 的發行版上執行 Docker,例如最初搭載 3.14 核心的 Ubuntu 14.04 LTS。

由於 Ubuntu 14.04 不再是 Docker 支援的發行版,並且 overlay2 可用於所有支援的發行版(因為它們都在核心 4.x 上,或者已將多個 lowerdirs 的支援移植回來),因此沒有理由繼續維護 aufs 儲存驅動程式。

舊版覆蓋儲存驅動程式

**在版本 v18.09 中淘汰** **在版本 v24.0 中移除**

overlay 儲存驅動程式已淘汰,建議改用 overlay2 儲存驅動程式,它具有 overlay 的所有優點,且沒有其限制(inode 過度消耗)。 舊版 overlay 儲存驅動程式已在 Docker Engine v24.0 中移除。 overlay 儲存驅動程式的使用者應在升級到 Docker Engine v24.0 之前遷移到 overlay2 儲存驅動程式。

舊版 overlay 儲存驅動程式允許在 v4.x 之前的核心上使用 OverlayFS 支援的檔案系統。由於所有支援的發行版現在都能夠執行 overlay2(因為它們都在核心 4.x 上,或者已將多個 lowerdirs 的支援移植回來),因此沒有理由繼續維護 overlay 儲存驅動程式。

裝置映射器儲存驅動程式

**在版本 v18.09 中淘汰** **在版本 v23.0 中預設停用** **在版本 v25.0 中移除**

devicemapper 儲存驅動程式已淘汰,建議改用 overlay2,並已在 Docker Engine v25.0 中移除。 devicemapper 儲存驅動程式的使用者必須在升級到 Docker Engine v25.0 之前遷移到其他儲存驅動程式,例如 overlay2

devicemapper 儲存驅動程式有助於在不支援其他儲存驅動程式(例如 overlay2 或 btrfs)的舊版 (3.x) 核心上執行 Docker。

由於所有支援的發行版都已新增 overlay2 的支援(因為它們都在核心 4.x 上,或者已將多個 lowerdirs 的支援移植回來),因此沒有理由繼續維護 devicemapper 儲存驅動程式。

在引擎標籤中使用保留的命名空間

在版本 v18.06 中淘汰

在版本 v20.10 中移除

引擎標籤中的命名空間 com.docker.*io.docker.*org.dockerproject.* 過去文件記載為保留用途,但從未實際強制執行。

現在使用這些命名空間會在引擎日誌中產生警告,以勸阻其使用,並在 v20.10 及更高版本中產生錯誤。

`--disable-legacy-registry` 覆寫守護行程選項

停用版本:v17.12

移除版本:v19.03

--disable-legacy-registry 旗標已在 Docker 17.12 中停用,使用時將會顯示錯誤訊息。為了顯示此錯誤,該旗標本身仍然存在,但已隱藏。該旗標已在 Docker 19.03 中移除。

與 V1 登錄檔互動

預設停用版本:v17.06

移除版本:v17.12

1.8.3 版本新增了一個旗標 (--disable-legacy-registry=false),可防止 Docker Daemon 對 v1 註冊中心執行 pullpushlogin 操作。雖然預設啟用,但这表示有意棄用 v1 協定。

在 1.13 中移除了對公共註冊中心 v1 協定的支援。任何使用 v1 的鏡像設定都應更新為使用 v2 註冊中心鏡像

從 Docker 17.12 開始,已移除對 V1 註冊中心的支援,--disable-legacy-registry 旗標已無法使用,設定該旗標將導致 dockerd 無法啟動。

非同步 `service create` 和 `service update` 作為預設值

棄用版本:v17.05

預設停用版本:v17.10`dockerd` 上的 `-g` 和 `--graph` 旗標

棄用版本:v17.05

移除版本:v23.0

dockerddocker daemon 命令的 -g--graph 旗標用於指示儲存持久性資料和資源配置的目錄,現已由更具描述性的 --data-root 旗標取代。這些旗標在 v17.05 中已棄用並隱藏,並在 v23.0 中移除。

NetworkSettings 中的頂層網路屬性

棄用版本:v1.13.0

預計移除版本:v17.12

檢查容器時,NetworkSettings 包含關於預設("bridge")網路的頂層資訊;

EndpointIDGatewayGlobalIPv6AddressGlobalIPv6PrefixLenIPAddressIPPrefixLenIPv6GatewayMacAddress

這些屬性已棄用,建議使用 NetworkSettings.Networks 中的每個網路屬性。這些屬性在 Docker 1.9 中已被「棄用」,但為了向後相容性而保留。

請參閱 #17538`/images/json` 端點的 `filter` 選項

棄用版本:v1.13.0

在版本 v20.10 中移除

用於按參考(名稱或名稱:標籤)篩選映像列表的 filter 選項現在已作為名為 reference 的常規篩選器實作。

`repository:shortid` 映像檔參考

棄用版本:v1.13.0

移除版本:v17.12

使用 repository:shortid 語法來參考映像的情況非常少見,它與標籤參考衝突,並且可能與摘要參考混淆。

在 Docker 17.12 中移除了對使用 repository:shortid 標記法參考映像的支援。

`docker daemon` 子命令

棄用版本:v1.13.0

移除版本:v17.12

守護行程式已移至單獨的二進制檔案 (dockerd),應改用它。

引擎標籤中具有衝突值的重複金鑰

棄用版本:v1.13.0

移除版本:v17.12

設定值衝突的重複鍵時,將會產生錯誤,並且守護行程式將無法啟動。

Dockerfile 中的 `MAINTAINER`

棄用版本:v1.13.0

MAINTAINER 是早期非常有限的 LABEL 形式,應該改用 LABEL

沒有版本的 API 呼叫

棄用版本:v1.13.0

預計移除版本:v17.12

所有 API 呼叫都應提供 API 版本,以確保與未來引擎版本的相容性。例如,您現在必須請求 /v1.25/containers/json,而不是僅請求 URL /containers/json

沒有 `d_type` 支援的覆蓋/覆蓋2 備份檔案系統

棄用版本:v1.13.0

移除版本:v17.12

如果底層檔案系統不支援 d_type,則 overlay 和 overlay2 儲存驅動程式將無法正常運作。例如,如果 XFS 使用 ftype=0 選項格式化,則它不支援 d_type

已移除對這些設定的支援,Docker v23.0 及更高版本現在嘗試在不支援 d_type 的底層檔案系統上使用 overlay2overlay 儲存驅動程式時將無法啟動。

詳情請參閱 #27358

自版本 v1.12.0 起棄用:v1.12.0

在版本 v20.10 中移除

docker search --automateddocker search --stars 選項已棄用。請改用 docker search --filter=is-automated=<true|false>docker search --filter=stars=...

`--help` 的 `-h` 簡寫

自版本 v1.12.0 起棄用:v1.12.0

預計在 v17.09 版本中移除。

簡寫 (-h) 在 Linux 上不如 --help 常用,且無法用於所有子命令(因為它會與 docker create 上的 -h / --hostname 等衝突)。因此,-h 簡寫不會印在子命令的「用法」輸出中,也沒有文件說明,現在標記為「已棄用」。

`docker login` 上的 `-e` 和 `--email` 旗標

自版本 v1.11.0 起棄用:v1.11.0v17.06`docker run` 上 `--security-opt` 旗標的分隔符號 (`:`)

自版本 v1.11.0 起棄用:v1.11.0API 中模糊的事件欄位

自版本 v1.10.0 起棄用:v1.10.0`docker tag` 上的 `-f` 旗標

自版本 v1.10.0 起棄用:v1.10.0v1.12.0API 容器啟動時的 HostConfig

自版本 v1.10.0 起棄用:v1.10.0v1.12.0`docker ps` 上的 `--before` 和 `--since` 旗標

自版本 v1.10.0 起棄用:v1.10.0v1.12.0驅動程式特定的記錄標籤

自版本 v1.9.0 起棄用:v1.9.0v1.12.0

$ docker --log-driver=syslog --log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"

Docker Content Trust ENV 密碼片語變數名稱變更

自版本 v1.9.0 起棄用:v1.9.0v1.12.0`/containers/(id or name)/copy` 端點

自版本 v1.8.0 起棄用:v1.8.0v1.12.0LXC 內建 exec 驅動程式

自版本 v1.8.0 起棄用:v1.8.0v1.10.0舊的命令列選項

自版本 v1.8.0 起棄用:v1.8.0v1.10.0v1.5.0

已於 v1.12.0 版本中移除:v1.12.0`dockerd` 上的 `--api-enable-cors` 旗標

棄用版本: v1.6.0

移除版本: v17.09

標籤 --api-enable-cors 自 v1.6.0 起已棄用。請改用標籤 --api-cors-header

`docker commit` 上的 `--run` 旗標

棄用版本: v0.10.0

移除版本: v1.13.0

docker commit 命令的標籤 --run(及其簡短版本 -run)已棄用,改用允許傳遞 Dockerfile 命令的 --changes 標籤。

`docker import` 中的三個參數形式

棄用版本: v0.6.7

已於 v1.12.0 版本中移除:v1.12.0

... 要求變更

目錄