引擎 API 版本歷史

v1.51 API 更改

Docker Engine API v1.51 文件

  • GET /images/json 現在將所有映象的 Containers 欄位值設定為使用該映象的容器數量。此欄位之前總是 -1。

v1.50 API 更改

Docker Engine API v1.50 文件

  • GET /info 現在包含一個 DiscoveredDevices 欄位。這是一個 DeviceInfo 物件的陣列,每個物件提供裝置驅動程式發現的裝置的詳細資訊。目前僅支援 CDI 裝置驅動程式。
  • DELETE /images/{name} 現在支援 platforms 查詢引數。它接受一個 JSON 編碼的 OCI Platform 物件陣列,允許選擇特定的平臺來刪除內容。
  • 已棄用:GET /info 響應中的 BridgeNfIptablesBridgeNfIp6tables 欄位在 API v1.48 中已棄用,現在在 API v1.50 中被省略。
  • 已棄用:GET /images/{name}/json 不再返回以下 Config 欄位;HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(未設定時已省略)、MacAddress(未設定時已省略)、StopTimeout(未設定時已省略)。這些額外的欄位由於實現細節包含在響應中,但不是映象配置的一部分。這些欄位在 API v1.46 中被標記為已棄用,現在被省略。較舊的 API 版本仍會返回這些欄位,但它們始終為空。

v1.49 API 更改

Docker Engine API v1.49 文件

  • GET /images/{name}/json 現在支援 platform 引數(JSON 編碼的 OCI Platform 型別),允許指定多平臺映象的平臺進行檢查。此選項與 manifests 選項互斥。
  • GET /info 現在返回一個 FirewallBackend,其中包含有關守護程序防火牆配置的資訊。
  • 已棄用:GET /info 響應中的 RegistryConfig 結構中的 AllowNondistributableArtifactsCIDRsAllowNondistributableArtifactsHostnames 欄位在 API v1.49 中被省略。
  • 已棄用:GET /info 端點中的 ContainerdCommit.ExpectedRuncCommit.ExpectedInitCommit.Expected 欄位在 API v1.48 中已棄用,現在在 API v1.49 中被省略。

v1.48 API 更改

Docker Engine API v1.48 文件

  • 已棄用:在返回 JSON 進度響應的端點(例如 POST /images/createPOST /images/{name}/pushPOST /build)的流式響應中,"error" 和 "progress" 欄位已棄用。這些欄位分別在 API v1.4 (docker v0.6.0) 和 API v1.8 (docker v0.7.1) 中標記為已棄用,但仍會返回。這些欄位在未來的 API 版本中將留空或被省略。使用者應改為使用 errorDetailprogressDetail 欄位中的資訊。
  • 已棄用:"allow-nondistributable-artifacts" 守護程序配置已棄用並預設啟用。GET /info 響應中的 RegistryConfig 結構中的 AllowNondistributableArtifactsCIDRsAllowNondistributableArtifactsHostnames 欄位現在將始終為 null,並在 API v1.49 中被省略。
  • 已棄用:GET /info 響應中的 BridgeNfIptablesBridgeNfIp6tables 欄位現在始終為 false,並在 API v1.49 中被省略。netfilter 模組現在按需載入,不再在守護程序啟動時載入,使得這些欄位過時。
  • GET /images/{name}/history 現在支援 platform 引數(JSON 編碼的 OCI Platform 型別),允許指定要顯示歷史的平臺。
  • POST /images/{name}/loadGET /images/{name}/get 現在支援 platform 引數(JSON 編碼的 OCI Platform 型別),允許指定要載入/儲存的平臺。不傳遞此引數將導致載入/儲存完整的多平臺映象。
  • POST /containers/create 現在在設定容器範圍的 Config.VolumeDriver 選項與透過 Mounts 定義的卷結合使用時,會在響應中包含警告,因為 VolumeDriver 選項對這些卷無效。此警告以前由 CLI 生成,現在已移至守護程序,以便其他客戶端也可以獲取此警告。
  • POST /containers/create 現在支援 image 型別的 Mount,用於在容器內部掛載映象。
  • 已棄用:GET /info 端點中的 ContainerdCommit.ExpectedRuncCommit.ExpectedInitCommit.Expected 欄位已棄用,並將在 API v1.49 中省略。
  • HostConfig (頂級 --sysctl 設定) 中用於 eth0Sysctls 不再遷移到 DriverOpts,如 v1.46 更改中所述。
  • GET /images/jsonGET /images/{name}/json 響應現在包含 Descriptor 欄位,其中包含映象目標的 OCI 描述符。新欄位僅在守護程序提供多平臺映象儲存時填充。警告:這是實驗性的,可能隨時更改,不保證向後相容性。
  • GET /images/{name}/json 響應現在將返回 Manifests 欄位,其中包含映象索引中包含的子清單的資訊。這包括平臺特定的清單和構建證明等。新欄位僅在請求也將 manifests 查詢引數設定為 true 時填充。這與 GET /images/json 端點中的行為相同。警告:這是實驗性的,可能隨時更改,不保證向後相容性。
  • GET /containers/{name}/json 現在返回一個 ImageManifestDescriptor 欄位,其中包含用於建立容器的映象的平臺特定映象清單的 OCI 描述符。此欄位僅在守護程序提供多平臺映象儲存時填充。
  • POST /networks/create 現在有一個 EnableIPv4 欄位。將其設定為 false 將停用網路的 IPv4 IPAM。僅當守護程序啟用了實驗性功能時,才能將其設定為 false
  • GET /networks/{id} 現在返回一個 EnableIPv4 欄位,顯示網路是否啟用了 IPv4 IPAM。
  • POST /networks/{id}/connectPOST /containers/create 現在在 EndpointsConfig 中接受 GwPriority 欄位。此值用於確定哪個網路端點為容器提供預設閘道器。選擇優先順序最高的端點。如果多個端點具有相同的優先順序,則端點按其網路名稱按字典順序排序,並選擇排序最靠前的端點。
  • GET /containers/json 現在在每個網路端點的 NetworkSettings 中返回一個 GwPriority 欄位。
  • API 除錯端點(GET /debug/varsGET /debug/pprof/GET /debug/pprof/cmdlineGET /debug/pprof/profileGET /debug/pprof/symbolGET /debug/pprof/traceGET /debug/pprof/{name})現在也可以透過帶版本號的 API 路徑 (/v<API-version>/<endpoint>) 訪問。
  • POST /build/prunekeep-bytes 重新命名為 reserved-space,現在支援額外的修剪引數 max-used-spacemin-free-space
  • GET /containers/json 現在返回一個與 /containers/{name}/json 中相同欄位的 ImageManifestDescriptor 欄位。此欄位僅在守護程序提供多平臺映象儲存時填充。

v1.47 API 更改

Docker Engine API v1.47 文件

  • GET /images/json 響應現在包含 Manifests 欄位,其中包含映象索引中包含的子清單的資訊。這包括平臺特定的清單和構建證明等。新欄位僅在請求也將 manifests 查詢引數設定為 true 時填充。警告:這是實驗性的,可能隨時更改,不保證向後相容性。
  • 當守護程序啟動時停用 bridge-nf-call-iptablesbridge-nf-call-ip6tables 時,GET /info 不再包含警告。現在在需要時嘗試載入 br_netfilter 模組,使得這些警告不準確。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

v1.46 API 更改

Docker Engine API v1.46 文件

  • GET /info 現在包含一個 Containerd 欄位,其中包含有關 containerd API 套接字位置和守護程序用於執行容器和外掛的 containerd 名稱空間的資訊。
  • POST /containers/create 欄位 NetworkingConfig.EndpointsConfig.DriverOpts,和 POST /networks/{id}/connect 欄位 EndpointsConfig.DriverOpts,現在支援標籤 com.docker.network.endpoint.sysctls 用於設定每個介面的 sysctls。該值為 sysctl 賦值的逗號分隔列表,介面名稱必須是 "IFNAME"。例如,要設定 net.ipv4.config.eth0.log_martians=1,請使用 net.ipv4.config.IFNAME.log_martians=1。在 API 版本 1.46 之前,eth0 的頂級 --sysctl 設定在可能的情況下將遷移到 DriverOpts。此自動遷移將在未來版本中移除。
  • GET /containers/json 現在返回容器的註釋。
  • POST /images/{name}/push 現在支援 platform 引數(JSON 編碼的 OCI Platform 型別),允許從多平臺映象中選擇特定的平臺清單。
  • POST /containers/create 現在將 Options 作為 HostConfig.Mounts.TmpfsOptions 的一部分,以設定 tmpfs 掛載的選項。
  • POST /services/create 現在將 Options 作為 ContainerSpec.Mounts.TmpfsOptions 的一部分,以設定 tmpfs 掛載的選項。
  • GET /events 現在支援映象 create 事件,該事件在構建新映象時發出,無論是否已標記。

GET /images/{name}/json 響應中已棄用的配置欄位

此端點(用於“映象檢查”)返回的 Config 欄位包含額外的欄位,這些欄位不是映象配置的一部分,也不是 Docker 映象規範OCI 映象規範 的一部分。

由於實現細節,這些額外的欄位包含在響應中,其中用於響應的 api/types.ImageInspec 型別使用的是 container.Config 型別。

container.Config 型別是映象配置的超集,雖然映象的 Config 用作從映象建立的容器的“模板”,但額外的欄位是在執行時設定的(從建立容器時傳遞的選項),而不是從映象 Config 中獲取。

這些欄位從未設定(並且總是返回型別的預設值),但在留空時不會在響應中省略。由於這些欄位不打算成為映象配置響應的一部分,因此它們已被棄用,並將從 API 中刪除。

以下欄位目前包含在 API 響應中,但不是底層映象配置的一部分,並且已被棄用

  • Hostname
  • Domainname
  • AttachStdin
  • AttachStdout
  • AttachStderr
  • Tty
  • OpenStdin
  • StdinOnce
  • Image
  • NetworkDisabled(未設定時已省略)
  • MacAddress(未設定時已省略)
  • StopTimeout(未設定時已省略)
  • POST /services/createPOST /services/{id}/update 現在支援 OomScoreAdj

v1.45 API 更改

Docker Engine API v1.45 文件

  • POST /containers/create 現在支援 VolumeOptions.Subpath,它允許掛載命名卷的子路徑。
  • POST /images/search 將始終假定 is-automated 欄位的值為 false。因此,搜尋 is-automated=true 將不會產生任何結果,而 is-automated=false 將是一個空操作。
  • GET /images/{name}/json 不再包含 ContainerContainerConfig 欄位。要訪問映象配置,請改用 Config 欄位。
  • 呼叫 GET /containers/{name:.*}/json 返回的 Aliases 欄位不再包含短容器 ID,而是將精確地反映最初提交到 POST /containers/create 端點的值。當需要短容器 ID 時,現在應改用新引入的 DNSNames

v1.44 API 更改

Docker Engine API v1.44 文件

  • GET /images/json 現在接受一個 until 過濾器。它接受一個時間戳,並列出在此時間戳之前建立的所有映象。<timestamp> 可以是 Unix 時間戳、日期格式的時間戳或相對於守護程序機器時間的 Go Duration 字串(例如 10m1h30m)。此更改未版本化,如果守護程序有此補丁,則會影響所有 API 版本。
  • GET /images/{name}/jsonGET /images/jsonGET /system/df 響應中的 VirtualSize 欄位現在被省略。請改用包含相同資訊的 Size 欄位。
  • 已棄用:GET /images/search 響應中的 is_automated 欄位已棄用,將來將始終設定為 false,因為 Docker Hub 正在棄用其搜尋 API 中的 is_automated 欄位。此棄用未版本化,適用於所有 API 版本。
  • 已棄用:GET /images/search 端點的 is-automated 過濾器。is_automated 欄位已被 Docker Hub 的搜尋 API 棄用。因此,搜尋 is-automated=true 將不會產生任何結果。此棄用未版本化,適用於所有 API 版本。
  • 在核心版本 >= 5.12 且執行時支援該功能時,只讀繫結掛載現在遞迴地設為只讀。POST /containers/createGET /containers/{id}/jsonGET /containers/json 現在支援 BindOptions.ReadOnlyNonRecursiveBindOptions.ReadOnlyForceRecursive 以自定義行為。
  • POST /containers/create 現在接受 HealthConfig.StartInterval,用於設定啟動期間健康檢查的間隔。
  • GET /info 現在包含一個 CDISpecDirs 欄位,指示配置的 CDI 規範目錄。應用此設定需要守護程序啟用實驗性功能,對於非實驗性守護程序,始終返回空列表。
  • 如果 IPAMConfig 具有無效值,POST /networks/create 現在將返回 400。請注意,此更改是*未版本化*的,並適用於支援版本 1.44 的守護程序上的所有 API 版本。
  • POST /networks/create 帶有重複名稱現在會系統地失敗。因此,CheckDuplicate 欄位現已棄用。請注意,此更改是*未版本化*的,並適用於支援版本 1.44 的守護程序上的所有 API 版本。
  • POST /containers/create 現在接受 NetworkingConfig.EndpointSettings 中的多個 EndpointSettings
  • POST /containers/createPOST /networks/{id}/connect 現在將捕獲以前只在 POST /containers/{id}/start 期間返回的驗證錯誤。這些端點還將返回它們發現的完整驗證錯誤集,而不是隻返回第一個。請注意,此更改是*未版本化*的,並適用於所有 API 版本。
  • POST /services/createPOST /services/{id}/update 現在接受 ContainerSpec.Privileges 物件中的 SeccompAppArmor 欄位。這允許在 Swarm 服務中配置 Seccomp 和 AppArmor。
  • 一個新的端點特定 MacAddress 欄位已新增到 POST /containers/create 上的 NetworkSettings.EndpointSettings,以及 POST /networks/{id}/connect 上的 EndpointConfigPOST /containers/createConfig 中的容器範圍 MacAddress 欄位現已棄用。
  • POST /services/createPOST /services/{id}/update 請求中的 Networks 欄位現已棄用。您應該改用 TaskTemplate.Networks 欄位。
  • GET /images/{name}/json 響應中的 ContainerContainerConfig 欄位已棄用,並且將不再包含在 API v1.45 中。
  • GET /info 現在在 Runtimes 中包含 status 屬性。
  • 一個名為 DNSNames 的新欄位已新增到 GET /containers/{name:.*}/json,其中包含容器在特定網路上擁有的所有非完全限定 DNS 名稱。
  • 在 v1.44 及更早版本中,呼叫 GET /containers/{name:.*}/json 返回的 Aliases 欄位包含短容器 ID。這將在下一個 API 版本 v1.45 中更改。從該 API 版本開始,此特定值將從 Aliases 欄位中刪除,以便此欄位將精確地反映最初提交到 POST /containers/create 端點的值。現在應改用新引入的 DNSNames
  • 呼叫 GET /containers/{id}/jsonNetworkSettings 中可用的 HairpinModeLinkLocalIPv6AddressLinkLocalIPv6PrefixLenSecondaryIPAddressesSecondaryIPv6Addresses 欄位已棄用,並將在未來版本中刪除。您應該改在 NetworkSettings.Networks 中查詢預設網路。
  • 如果映象配置中缺少 Created 欄位,GET /images/{id}/json 將省略 Created 欄位(之前為 0001-01-01T00:00:00Z)。

v1.43 API 更改

Docker Engine API v1.43 文件

  • POST /containers/create 現在接受 Annotations 作為 HostConfig 的一部分。可用於將任意元資料附加到容器,這些元資料也將在容器啟動時傳遞給執行時。
  • GET /images/json 不再在 RepoTagsRepoDigests 中包含未標記映象的硬編碼 <none>:<none><none>@<none>。在這種情況下,將生成空陣列。
  • GET /images/{name}/jsonGET /images/jsonGET /system/df 響應中的 VirtualSize 欄位已棄用,並且將不再包含在 API v1.44 中。請改用包含相同資訊的 Size 欄位。
  • 當全域性啟用此選項時,GET /info 現在在 SecurityOptions 字串列表中包含 no-new-privileges。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

v1.42 API 更改

Docker Engine API v1.42 文件

  • 刪除了 GET /system/df 端點上的 BuilderSize 欄位。此欄位在 API 1.31 中作為實驗性功能引入,自 API 1.40 以來不再使用。請改用 BuildCache 欄位來跟蹤構建器元件使用的儲存。

  • POST /containers/{id}/stopPOST /containers/{id}/restart 現在接受 signal 查詢引數,該引數允許覆蓋容器的預設停止訊號。

  • GET /images/json 現在接受查詢引數 shared-size。當設定為 true 時,返回的映象將包含 SharedSize,它提供與系統上存在的其他映象共享的磁碟空間大小。

  • GET /system/df 現在接受查詢引數 type。設定後,僅為指定的物件型別計算並返回資料。該引數可以指定多次以選擇多個物件型別。支援的值有:containerimagevolumebuild-cache

  • GET /system/df 現在可以併發使用。如果在一個先前的請求仍在處理時發出請求,則該請求將在完成時接收到已在執行的計算結果。以前,在這種情況下會返回錯誤 (a disk usage operation is already running)。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • POST /images/create 現在支援透過 platform 查詢引數傳遞的作業系統和架構,當使用 fromSrc 選項從存檔匯入映象時。以前,只使用作業系統,架構被忽略。如果未設定 platform 選項,則使用主機的作業系統和架構作為預設值。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • 如果提供了無效的 conditionPOST /containers/{id}/wait 端點現在返回 400 狀態碼(在 API 1.30 及更高版本上)。

  • POST /containers/createPOST /containers/{id}/update 端點中刪除了 KernelMemory 欄位,在 API 版本 v1.42 及更高版本上,它設定的任何值都將被忽略。較舊的 API 版本仍然接受此欄位,但可能無效,具體取決於所使用的核心版本和 OCI 執行時。

  • 如果未設定 KernelMemoryKernelMemoryTCPGET /containers/{id}/json 現在會省略它們。

  • 如果主機或主機配置不支援 KernelMemoryKernelMemoryTCP(如果使用 cgroups v2),GET /info 現在會省略它們。

  • GET /_pingHEAD /_ping 現在預設返回 Builder-Version。此標頭包含要使用的預設構建器,並且是守護程序推薦的。但是,由客戶端選擇使用哪個構建器。

    在 Linux 上,預設值為版本 "2" (BuildKit),但守護程序可以配置為推薦版本 "1" (經典構建器)。Windows 尚未支援 BuildKit 用於原生 Windows 映象,並使用 "1" (經典構建器) 作為預設值。

    此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • GET /_pingHEAD /_ping 現在返回一個 Swarm 標頭,它允許客戶端檢測守護程序是否啟用了 Swarm,而無需呼叫額外的端點。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。客戶端必須將此標頭視為“可選”,如果標頭不存在,則回退到使用其他端點獲取此資訊。

    Swarm 標頭可以包含以下值之一

    • "不活動"
    • "待定"
    • "錯誤"
    • "已鎖定"
    • "活動/工作節點"
    • "活動/管理節點"
  • POST /containers/create 對於 Windows 容器現在在 HostConfig.Resources.Devices.PathOnHost 中接受新的語法。除了現有的 class/<GUID> 語法,現在也識別 <IDType>://<ID>。對特定 <IDType> 值的支援取決於底層實現和 Windows 版本。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • GET /containers/{id}/attachGET /exec/{id}/startGET /containers/{id}/logsGET /services/{id}/logsGET /tasks/{id}/logs 現在將 Content-Type 標頭設定為 application/vnd.docker.multiplexed-stream,當多路複用的 stdout/stderr 流傳送到客戶端時;否則設定為 application/vnd.docker.raw-stream

  • POST /volumes/create 現在接受新的 ClusterVolumeSpec 以建立叢集卷 (CNI)。此選項僅當守護程序是 Swarm 管理器時才能使用。建立時的 Volume 響應現在還可以包含一個 ClusterVolume 欄位,其中包含有關已建立卷的資訊。

  • GET /system/df 返回的 BuildCache.Parent 欄位已棄用,現在被省略。v1.42 之前的 API 版本繼續包含此欄位。

  • GET /system/df 現在包含一個新的 Parents 欄位,用於“構建快取”記錄,其中包含構建快取記錄的父 ID 列表。

  • GET /volumes/{name}GET /volumesGET /system/df 返回的卷資訊現在可以包含一個 ClusterVolume,如果該卷是叢集卷(要求守護程序是 Swarm 管理器)。

  • Volume 型別,由 Added new ClusterVolume` 欄位返回。

  • 添加了一個新的 PUT /volumes{name} 端點來更新叢集卷 (CNI)。叢集卷僅在守護程序是 Swarm 管理器時才支援。

  • GET /containers/{name}/attach/ws 端點現在接受 stdinstdoutstderr 查詢引數,以僅附加到配置的流。

    注意:這些引數在較舊的 API 版本中已被記錄,但實際上不受支援。v1.42 之前的 API 版本繼續忽略這些引數,並預設附加到所有流。為了保留 v1.42 之前的行為,請設定所有三個查詢引數 (?stdin=1,stdout=1,stderr=1)。

  • POST /containers/create 在 Linux 上現在遵守 HostConfig.ConsoleSize 屬性。容器立即以所需的終端大小建立,客戶端不再需要自行設定所需大小。

  • POST /containers/create 允許為缺少的主機路徑設定 CreateMountpoint。這與 Binds 保持一致。

  • 如果 BindOptions|VolumeOptions|TmpfsOptions 與不匹配的掛載型別一起設定,POST /containers/create 將拒絕請求。

  • POST /containers/{id}/exec 現在接受一個可選的 ConsoleSize 引數。它允許在執行程序建立時立即設定其控制檯大小。

  • POST /volumes/prune 現在預設僅修剪“匿名”卷(未命名的卷)。可以將新的過濾引數 all 設定為 truth-y 值(true1)以獲得舊行為。

v1.41 API 更改

Docker Engine API v1.41 文件

  • GET /events 現在在修剪資源完成後返回 prune 事件。修剪事件針對 containernetworkvolumeimagebuilder 返回,並具有 reclaimed 屬性,指示回收的空間量(以位元組為單位)。

  • GET /info 現在返回一個 CgroupVersion 欄位,其中包含 cgroup 版本。

  • GET /info 現在返回一個 DefaultAddressPools 欄位,其中包含本地網路的自定義預設地址池列表,可以在 daemon.json 檔案或 --default-address-pool dockerd 選項中指定。

  • POST /services/createPOST /services/{id}/update 現在支援 BindOptions.NonRecursive

  • GET /info 中的 ClusterStoreClusterAdvertise 欄位已棄用,如果它們包含空值,則現在被省略。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • filter(單數)查詢引數已從 GET /images/json 端點中刪除,該引數在 Docker 1.13 中已棄用,取而代之的是 filters 選項。使用 API 版本 1.40 或更低版本時,該引數仍然可用。

  • GET /services 現在將 CapAddCapDrop 作為 ContainerSpec 的一部分返回。

  • GET /services/{id} 現在將 CapAddCapDrop 作為 ContainerSpec 的一部分返回。

  • POST /services/create 現在接受 CapAddCapDrop 作為 ContainerSpec 的一部分。

  • POST /services/{id}/update 現在接受 CapAddCapDrop 作為 ContainerSpec 的一部分。

  • GET /tasks 現在將 CapAddCapDrop 作為 ContainerSpec 的一部分返回。

  • GET /tasks/{id} 現在將 CapAddCapDrop 作為 ContainerSpec 的一部分返回。

  • GET /services 現在在 TaskTemplate.Resources.Limits 中返回 Pids

  • GET /services/{id} 現在在 TaskTemplate.Resources.Limits 中返回 Pids

  • POST /services/create 現在在 TaskTemplate.Resources.Limits 中接受 Pids

  • POST /services/{id}/update 現在在 TaskTemplate.Resources.Limits 中接受 Pids,以限制最大 PID 數量。

  • GET /tasks 現在在 TaskTemplate.Resources.Limits 中返回 Pids

  • GET /tasks/{id} 現在在 TaskTemplate.Resources.Limits 中返回 Pids

  • POST /containers/create 現在接受格式為 os[/arch[/variant]]platform 查詢引數。

    設定後,守護程序會檢查請求的映象是否以給定的作業系統和架構存在於本地映象快取中,否則返回 404 狀態。

    如果未設定該選項,則使用主機的本機作業系統和架構在映象快取中查詢映象。但是,如果未傳遞平臺並且給定映象*確實*存在於本地映象快取中,但其作業系統或架構不匹配,則會使用可用映象建立容器,並在響應的 Warnings 欄位中新增警告,例如;

    WARNING: The requested image's platform (linux/arm64/v8) does not
             match the detected host platform (linux/amd64) and no
             specific platform was requested
    
  • POST /containers/create 在 Linux 上現在預設使用 HostConfig.CgroupnsMode=private 建立容器,如果未明確指定 IpcMode。可以透過使用 CgroupNamespaceMode 守護程序配置引數將每個守護程序的預設值更改回 shareable

  • GET /info 現在返回一個 OSVersion 欄位,其中包含作業系統的版本。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • 如果 SystemStatus 欄位沒有值,GET /info 將不再返回該欄位。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

  • GET /services 現在接受查詢引數 status。當設定為 true 時,返回的服務將包含 ServiceStatus,它提供服務的期望、執行中和已完成的任務計數。

  • GET /services 現在可能包含 ReplicatedJobGlobalJob 作為 ServiceSpec 中的 Mode

  • GET /services/{id} 現在可能包含 ReplicatedJobGlobalJob 作為 ServiceSpec 中的 Mode

  • POST /services/create 現在接受 ReplicatedJobGlobalJob 作為 ServiceSpec 中的 Mode

  • POST /services/{id}/update 接受更新 ServiceSpec.ModeReplicatedJob 物件的欄位。但是,服務模式仍然無法更改。

  • GET /services 現在包含 ReplicatedJobGlobalJob 模式服務的 JobStatus

  • GET /services/{id} 現在包含 ReplicatedJobGlobalJob 模式服務的 JobStatus

  • GET /tasks 現在包含從作業模式服務生成的任務的 JobIteration

  • GET /tasks/{id} 現在包含從作業模式服務生成的任務的 JobIteration

  • GET /containers/{id}/stats 現在接受一個查詢引數 (one-shot),當與 stream=false 一起使用時,它會獲取一組統計資訊,而不是等待兩次收集週期才能在 1 秒內獲得 2 個 CPU 統計資訊。

  • HostConfig.Resources 中的 KernelMemory 欄位現已棄用。

  • Info 中的 KernelMemory 欄位現已棄用。

  • GET /services 現在將 Ulimits 作為 ContainerSpec 的一部分返回。

  • GET /services/{id} 現在將 Ulimits 作為 ContainerSpec 的一部分返回。

  • POST /services/create 現在接受 Ulimits 作為 ContainerSpec 的一部分。

  • POST /services/{id}/update 現在接受 Ulimits 作為 ContainerSpec 的一部分。

v1.40 API 更改

Docker Engine API v1.40 文件

  • /_ping 端點現在可以使用 GETHEAD 請求訪問。當使用 HEAD 請求訪問時,所有頭都返回,但正文為空 (Content-Length: 0)。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。建議客戶端嘗試使用 HEAD,但如果 HEAD 請求失敗,則回退到 GET
  • GET /_pingHEAD /_ping 現在設定 Cache-ControlPragma 標頭以防止結果被快取。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
  • GET /services 現在將 Sysctls 作為 ContainerSpec 的一部分返回。
  • GET /services/{id} 現在將 Sysctls 作為 ContainerSpec 的一部分返回。
  • POST /services/create 現在接受 Sysctls 作為 ContainerSpec 的一部分。
  • POST /services/{id}/update 現在接受 Sysctls 作為 ContainerSpec 的一部分。
  • POST /services/create 現在接受 Config 作為 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/{id}/update 現在接受 Config 作為 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/create 現在包含 Runtime 作為 ContainerSpec.Configs 中的一個選項。
  • POST /services/{id}/update 現在包含 Runtime 作為 ContainerSpec.Configs 中的一個選項。
  • GET /tasks 現在將 Sysctls 作為 ContainerSpec 的一部分返回。
  • GET /tasks/{id} 現在將 Sysctls 作為 ContainerSpec 的一部分返回。
  • GET /networks 現在支援 dangling 過濾器型別。當設定為 true(或 1)時,端點返回所有未被容器使用的網路。當設定為 false(或 0)時,只返回被一個或多個容器使用的網路。
  • GET /nodes 現在支援 node.label 過濾器型別,用於根據 node.label 過濾節點。標籤過濾器的格式為 node.label=<key>/node.label=<key>=<value> 返回具有指定標籤的節點,或 node.label!=<key>/node.label!=<key>=<value> 返回不具有指定標籤的節點。
  • POST /containers/create 在使用 Fluentd 日誌驅動程式時,現在接受 HostConfig.LogConfig.Config 中的 fluentd-async 選項。此選項棄用了 fluentd-async-connect 選項,該選項仍然有效,但將在未來版本中移除。建議使用者今後使用 fluentd-async 選項。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
  • POST /containers/create 在使用 Fluentd 日誌驅動程式時,現在接受 HostConfig.LogConfig.Config 中的 fluentd-request-ack 選項。如果啟用,Fluentd 日誌驅動程式會發送帶有唯一 ID 的 chunk 選項。伺服器將響應確認。此選項提高了訊息傳輸的可靠性。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
  • POST /containers/createGET /containers/{id}/jsonGET /containers/json 現在支援 BindOptions.NonRecursive
  • POST /swarm/init 現在接受 DataPathPort 屬性來設定資料路徑埠號。
  • GET /info 現在返回關於當前在 swarm 中使用的 DataPathPort 的資訊。
  • GET /info 現在返回 PidsLimit 布林值,指示主機核心是否啟用了 PID 限制支援。
  • 當守護程序在無根模式下執行時,GET /info 現在在 SecurityOptions 中包含 name=rootless。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
  • 當守護程序在無根模式下執行時,GET /info 現在返回 none 作為 CgroupDriver。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
  • POST /containers/create 現在接受 DeviceRequests 作為 HostConfig 的一部分。可用於設定 Nvidia GPU。
  • GET /swarm 端點現在返回 DataPathPort 資訊。
  • POST /containers/create 現在接受 KernelMemoryTCP 欄位,用於設定核心 TCP 緩衝區記憶體的硬限制。
  • GET /service 現在返回 MaxReplicas 作為 Placement 的一部分。
  • GET /service/{id} 現在返回 MaxReplicas 作為 Placement 的一部分。
  • POST /service/createPOST /services/(id or name)/update 現在接受 MaxReplicas 欄位作為服務 Placement 的一部分,允許指定服務的每個節點最大副本數。
  • 在 Linux 上,POST /containers/create 現在預設使用 HostConfig.IpcMode=private 建立容器,如果未明確指定 IpcMode。可以透過使用 DefaultIpcMode 守護程序配置引數將每個守護程序的預設值更改回 shareable
  • POST /containers/{id}/update 現在接受 PidsLimit 欄位以調整容器的 PID 限制。設定為 0-1 表示無限制。留空 null 表示不更改當前值。
  • POST /build 現在接受 outputs 鍵,用於在使用 BuildKit 模式時配置構建輸出。

V1.39 API 更改

Docker Engine API v1.39 文件

  • 如果守護程序無法獲取此資訊,GET /info 現在為 KernelVersionOperatingSystem 返回空字串,而不是 <unknown>
  • 如果已向守護程序應用許可證,GET /info 現在返回有關產品許可證的資訊。
  • GET /info 現在返回一個 Warnings 欄位,其中包含有關缺失功能或與守護程序配置相關的問題的警告和資訊訊息。
  • POST /swarm/init 現在接受 DefaultAddrPool 屬性來設定全域性範圍預設地址池。
  • POST /swarm/init 現在接受 SubnetSize 屬性來設定全域性範圍網路,透過為每個此類網路提供子網掩碼的長度。
  • POST /session(在 V1.31 中新增)不再是實驗性的。此端點可用於在客戶端和守護程序之間執行互動式長期協議。

V1.38 API 更改

Docker Engine API v1.38 文件

  • GET /tasksGET /tasks/{id} 現在返回一個 NetworkAttachmentSpec 欄位,其中包含連線到“可附加”swarm 範圍網路的非服務容器的 ContainerID

v1.37 API 更改

Docker Engine API v1.37 文件

  • POST /containers/createPOST /services/create 現在支援暴露 SCTP 埠。
  • POST /configs/createPOST /configs/{id}/create 現在接受 Templating 驅動程式。
  • GET /configsGET /configs/{id} 現在返回配置的 Templating 驅動程式。
  • POST /secrets/createPOST /secrets/{id}/create 現在接受 Templating 驅動程式。
  • GET /secretsGET /secrets/{id} 現在返回 secret 的 Templating 驅動程式。

v1.36 API 更改

Docker Engine API v1.36 文件

  • Get /events 現在在 exec 程序終止時返回 exec_die 事件。

v1.35 API 更改

Docker Engine API v1.35 文件

  • POST /services/createPOST /services/(id)/update 現在接受容器規範上的 Isolation 欄位,以設定執行服務的容器的隔離技術(defaultprocesshyperv)。此配置僅用於 Windows 容器。
  • GET /containers/(name)/logs 現在支援一個額外的查詢引數:until,它返回在指定時間戳之前發生的日誌行。
  • POST /containers/{id}/exec 現在接受 WorkingDir 屬性,以設定 exec 程序的工作目錄,獨立於容器的工作目錄。
  • Get /version 現在返回一個 Platform.Name 欄位,Moby 產品可以使用它來返回有關平臺的資訊。
  • Get /version 現在返回一個 Components 欄位,可用於返回有關所用元件的資訊。關於引擎本身的資訊現在作為“元件”版本包含在內,幷包含頂層 VersionGitCommitAPIVersionMinAPIVersionGoVersionOsArchBuildTimeKernelVersionExperimental 欄位的所有資訊。今後,將優先使用 Components 部分的資訊,而不是其頂層對應項。

v1.34 API 更改

Docker Engine API v1.34 文件

  • POST /containers/(name)/wait?condition=removed 現在也在容器刪除失敗的情況下返回。響應 JSON 中添加了一個名為 Error 的結構指標,以指示失敗。如果 Errornull,則容器刪除成功,否則,表示容器刪除失敗的錯誤訊息文字可從 Error.Message 欄位獲取。

v1.33 API 更改

Docker Engine API v1.33 文件

  • GET /events 現在支援過濾 4 種更多型別的事件:confignodesecretservice

v1.32 API 更改

Docker Engine API v1.32 文件

  • POST /images/create 現在接受 os[/arch[/variant]] 形式的 platform 引數。
  • POST /containers/create 現在接受 HostConfig.IpcMode 屬性的其他值。新值為 privateshareablenone
  • DELETE /networks/{id or name} 修復了一個問題,即與另一個網路名稱相同的 name 能夠掩蓋該 id。如果同時存在具有給定*名稱*的網路和具有給定*id*的網路,則現在刪除具有給定*id*的網路。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。

v1.31 API 更改

Docker Engine API v1.31 文件

  • 當 secret 不存在時,DELETE /secrets/(name) 現在返回狀態碼 404 而不是 500。
  • 當建立已存在的 secret 時,POST /secrets/create 現在返回狀態碼 409 而不是 500。
  • POST /secrets/create 現在接受一個 Driver 結構體,允許將 Name 和驅動程式特定的 Options 傳遞給外部 secret 儲存。如果使用預設(內部)secret 儲存,則可以省略 Driver 屬性。
  • GET /secrets/(id)GET /secrets 現在返回一個 Driver 結構體,其中包含用於儲存 secret 的外部 secret 儲存的 Name 和驅動程式特定的 Options。如果未使用外部儲存,則省略 Driver 屬性。
  • 當更新 secret 的內容而不是標籤時,POST /secrets/(name)/update 現在返回狀態碼 400 而不是 500。
  • 當降級最後一個節點失敗時,POST /nodes/(name)/update 現在返回狀態碼 400 而不是 500。
  • GET /networks/(id or name) 現在接受一個可選的查詢引數 scope,它將根據作用域(localswarmglobal)過濾網路。
  • POST /session 是一個新端點,可用於在客戶端和守護程序之間執行互動式長期協議。此端點是實驗性的,僅在守護程序啟用了實驗性功能時可用。
  • GET /images/(name)/get 現在包含一個 ImageMetadata 欄位,其中包含引擎本地的映象元資料,而不是映象配置的一部分。
  • TaskTemplate.Runtime 設定為 plugin 時,POST /services/create 現在接受 PluginSpec
  • GET /events 現在支援配置事件 createupdateremove,這些事件在使用者建立、更新或刪除配置時發出。
  • GET /volumes/GET /volumes/{name} 現在返回一個 CreatedAt 欄位,其中包含卷的建立日期/時間。如果卷的建立日期/時間未知,則省略此欄位。對於作用域為“global”的卷,此欄位表示卷的本地*例項*的建立日期/時間,這可能與不同節點上相同卷的例項不同。
  • GET /system/df 現在為 Volumes 返回一個 CreatedAt 欄位。有關此欄位的描述,請參閱 /volumes/ 端點。

v1.30 API 更改

Docker Engine API v1.30 文件

  • GET /info 現在返回支援的日誌驅動程式列表,包括外掛。
  • 如果節點在 swarm 中,GET /infoGET /swarm 現在返回叢集範圍的 swarm CA 資訊:叢集根 CA 證書,以及叢集 TLS 葉證書頒發者的主題和公鑰。它還顯示所需的 CA 簽名證書(如果已作為規範的一部分提供)。
  • POST /build/ 現在(當不靜默時)在 JSON 輸出流中生成一個 Aux 訊息,其有效負載為 types.BuildResult,用於每個生成的映象。最後一個此類訊息將引用構建生成的映象。
  • 如果節點是 swarm 的一部分,GET /nodesGET /nodes/{id} 現在返回有關 swarm TLS 資訊的額外資訊:受信任的根 CA,以及頒發者的主題和公鑰。
  • GET /distribution/(name)/json 是一個新端點,它返回一個 JSON 輸出流,其有效負載為 types.DistributionInspect,用於映象名稱。它包含一個帶摘要的描述符,以及直接聯絡登錄檔檢索到的受支援平臺。
  • POST /swarm/update 現在接受 3 個額外的引數作為 swarm 規範的 CA 配置的一部分;swarm 所需的 CA 證書,swarm 所需的 CA 金鑰(如果不使用外部證書),以及一個可選引數,用於強制 swarm 生成並輪換到新的 CA 證書/金鑰對。
  • POST /service/createPOST /services/(id or name)/update 現在將 Platforms 欄位作為服務 Placement 的一部分,允許指定服務支援的平臺。
  • POST /containers/(name)/wait 現在接受一個 condition 查詢引數,以指示要等待哪個狀態更改條件。此外,響應頭現在立即返回,以確認伺服器已為客戶端註冊了等待回撥。
  • POST /swarm/init 現在接受 DataPathAddr 屬性來設定用於資料流量的 IP 地址或網路介面。
  • POST /swarm/join 現在接受 DataPathAddr 屬性來設定用於資料流量的 IP 地址或網路介面。
  • GET /events 現在支援服務、節點和 secret 事件,這些事件在使用者建立、更新和刪除服務、節點和 secret 時發出。
  • GET /events 現在支援網路移除事件,該事件在使用者移除 swarm 範圍網路時發出。
  • GET /events 現在支援一個 scope 過濾器型別,其中支援的值可以是 swarm 和 local。
  • PUT /containers/(name)/archive 現在接受 copyUIDGID 引數,允許將 UID/GID 映射覆制到目標檔案或目錄。

v1.29 API 更改

Docker Engine API v1.29 文件

  • DELETE /networks/(name) 現在允許移除入口網路,即用於提供路由網格的網路。
  • POST /networks/create 現在支援建立入口網路,透過指定一個 Ingress 布林欄位。目前,這僅在使用覆蓋網路驅動程式時支援。
  • GET /networks/(name) 現在返回一個 Ingress 欄位,顯示網路是否是入口網路。
  • GET /networks/ 現在支援 scope 過濾器,用於根據網路模式(swarmgloballocal)過濾網路。
  • POST /containers/createPOST /service/createPOST /services/(id or name)/update 現在接受 StartPeriod 欄位作為 HealthConfig 的一部分,允許指定一個週期,在此期間容器即使健康檢查不透過也不應被視為不健康。
  • GET /services/(id) 現在接受一個 insertDefaults 查詢引數,用於將預設值合併到服務檢查輸出中。
  • POST /containers/prunePOST /images/prunePOST /volumes/prunePOST /networks/prune 現在支援 label 過濾器,用於根據標籤過濾容器、映象、卷或網路。標籤過濾器的格式可以是 label=<key>/label=<key>=<value> 以刪除具有指定標籤的那些,或者 label!=<key>/label!=<key>=<value> 以刪除不具有指定標籤的那些。
  • POST /services/create 現在接受 Privileges 作為 ContainerSpec 的一部分。Privileges 目前包括 CredentialSpecSELinuxContext

v1.28 API 更改

Docker Engine API v1.28 文件

  • POST /containers/create 現在包含一個 Consistency 欄位,用於指定每個 Mount 的一致性級別,可能的值為 defaultconsistentcacheddelegated
  • GET /containers/create 現在在 HostConfig 中接受 DeviceCgroupRules 欄位,允許為建立的容器設定自定義裝置 cgroup 規則。
  • GET /networks/(id or name) 的可選查詢引數 verbose 現在將列出所有服務及其所有任務,包括給定網路上的非本地任務。
  • GET /containers/(id or name)/attach/ws 現在為 API 版本 >= v1.28 返回二進位制幀格式的 WebSocket,為 API 版本 < v1.28 返回文字幀格式的 WebSocket,以實現向後相容性。
  • GET /networks 僅最佳化以返回所有網路和網路特定資訊的列表。所有附加到特定網路的容器列表已從此 API 中刪除,並且只能使用網路特定的 GET /networks/{network-id} 獲取。
  • GET /containers/json 現在支援 publishexpose 過濾器,用於過濾暴露或釋出某些埠的容器。
  • POST /services/createPOST /services/(id or name)/update 現在接受 ReadOnly 引數,該引數將容器的根檔案系統掛載為只讀。
  • POST /build 現在接受 extrahosts 引數,用於在構建期間指定主機到 IP 的對映。
  • POST /services/createPOST /services/(id or name)/update 現在接受 FailureActionrollback 值。
  • POST /services/createPOST /services/(id or name)/update 現在接受一個可選的 RollbackConfig 物件,用於指定回滾選項。
  • GET /services 現在支援 mode 過濾器,用於根據服務模式(globalreplicated)過濾服務。
  • POST /containers/(name)/update 現在支援更新 NanoCpus,它表示 CPU 配額,單位為 10-9 CPUs。
  • POST /plugins/{name}/disable 現在接受 force 查詢引數,即使外掛仍在使用中,也可以停用它。

v1.27 API 更改

Docker Engine API v1.27 文件

  • GET /containers/(id or name)/stats 現在在 precpu_statscpu_stats 中都包含 online_cpus 欄位。如果此欄位為 nil,則為了與舊版守護程式相容,應使用相應的 cpu_usage.percpu_usage 陣列的長度。

v1.26 API 更改

Docker Engine API v1.26 文件

  • POST /plugins/(plugin name)/upgrade 升級外掛。

v1.25 API 更改

Docker Engine API v1.25 文件

  • 所有 API 呼叫現在都要求指定 API 版本。例如,您現在必須請求 /v1.25/containers/json,而不是僅僅請求 /containers/json
  • GET /version 現在返回 MinAPIVersion
  • POST /build 接受 networkmode 引數以指定構建期間使用的網路。
  • GET /images/(name)/json 現在返回 OsVersion(如果已填充)
  • GET /images/(name)/json 不再包含 RootFS.BaseLayer 欄位。此欄位用於使用預裝在主機上的基礎映象(RootFS.Typelayers+base)的 Windows 映象,這已不再受支援,並且 RootFS.BaseLayer 欄位已被移除。
  • GET /info 現在返回 Isolation
  • POST /containers/create 現在在 HostConfig 中接受 AutoRemove,以便在容器程序退出時在守護程式端啟用容器的自動刪除。
  • GET /containers/jsonGET /containers/(id or name)/json 現在在容器正在刪除時,將 State.Status 欄位的值返回為 "removing"。以前,返回的狀態是“exited”。
  • GET /containers/json 現在接受 removing 作為 status 過濾器的有效值。
  • GET /containers/json 現在支援按 health 狀態過濾容器。
  • DELETE /volumes/(name) 現在接受 force 查詢引數,以強制刪除已被卷驅動程式外掛在帶外刪除的卷。
  • POST /containers/create/POST /containers/(name)/update 現在驗證重啟策略。
  • POST /containers/create 現在驗證 NetworkingConfig 中的 IPAMConfig,並對無效的 IPv4 和 IPv6 地址(docker create/run 中的 --ip--ip6)返回錯誤。
  • POST /containers/create 現在在 HostConfig 中接受 Mounts 欄位,該欄位取代了 BindsVolumesTmpfs注意BindsVolumesTmpfs 仍然可用,並且可以與 Mounts 結合使用。
  • POST /build 現在在開始構建之前對 Dockerfile 執行初步驗證,如果語法不正確則返回錯誤。請注意,此更改是未版本化的,並適用於所有 API 版本。
  • POST /build 接受 cachefrom 引數以指定用於構建快取的映象。
  • 如果提供了尾部斜槓但未提供 nameid,則 GET /networks/ 端點現在正確返回所有網路的列表,而不是預設網路。
  • 當容器名稱處於正在刪除狀態時,DELETE /containers/(name) 端點現在返回錯誤訊息 removal of container name is already in progress,狀態程式碼為 400。
  • GET /containers/json 現在支援 is-task 過濾器,用於過濾作為任務的容器(群集模式下服務的一部分)。
  • POST /containers/create 現在接受 StopTimeout 欄位。
  • POST /services/createPOST /services/(id or name)/update 現在接受 MonitorMaxFailureRatio 引數,用於控制服務更新期間對故障的響應。
  • POST /services/(id or name)/update 現在在 TaskTemplate 中接受 ForceUpdate 引數,這會導致服務更新,即使沒有通常會觸發更新的更改。
  • POST /services/createPOST /services/(id or name)/update 現在返回一個 Warnings 陣列。
  • GET /networks/(name) 現在在響應中返回 Created 欄位,以顯示網路建立時間。
  • POST /containers/(id or name)/exec 現在接受 Env 欄位,其中包含要在命令執行上下文中設定的環境變數列表。
  • GET /volumesGET /volumes/(name)POST /volumes/create 現在返回 Options 欄位,其中包含建立卷時要使用的特定於驅動程式的選項。
  • GET /exec/(id)/json 現在返回 Pid,它是執行程序的系統 pid。
  • POST /containers/prune 清理停止的容器。
  • POST /images/prune 清理未使用的映象。
  • POST /volumes/prune 清理未使用的卷。
  • POST /networks/prune 清理未使用的網路。
  • 每個 API 響應現在都包含一個 Docker-Experimental 標頭,指定是否啟用了實驗性功能(值可以是 truefalse)。
  • 每個 API 響應現在都包含一個 API-Version 標頭,指定伺服器的預設 API 版本。
  • hostConfig 選項現在接受 CpuRealtimePeriodCpuRtRuntime 欄位,用於在核心中啟用 CONFIG_RT_GROUP_SCHED 時為即時任務分配 CPU 執行時。
  • 如果守護程式中啟用了使用者名稱空間,則 GET /info 響應中的 SecurityOptions 欄位現在包含 userns
  • GET /nodesGET /node/(id or name) 現在返回 Addr 作為節點 Status 的一部分,該地址是該節點連線到管理器的地址。
  • HostConfig 欄位現在包含 NanoCpus,它表示 CPU 配額,單位為 10-9 CPUs。
  • GET /info 現在返回有關安全選項的更結構化資訊。
  • HostConfig 欄位現在包含 CpuCount,它表示容器可用於執行的 CPU 數量。僅限 Windows 守護程式。
  • POST /services/createPOST /services/(id or name)/update 現在接受 TTY 引數,該引數在容器中分配一個偽 TTY。
  • POST /services/createPOST /services/(id or name)/update 現在接受 DNSConfig 引數,該引數透過 NameserversSearchOptions 指定解析器配置檔案 (resolv.conf) 中的 DNS 相關配置。
  • POST /services/createPOST /services/(id or name)/update 現在支援服務 TaskSpec.Placement.Constraints 欄位中的 node.platform.archnode.platform.os 約束。
  • GET /networks/(id or name) 現在包含群集模式覆蓋網路的所有對等節點的 IP 和名稱。
  • GET /plugins 列出外掛。
  • POST /plugins/pull?name=<plugin name> 拉取外掛。
  • GET /plugins/(plugin name) 檢查外掛。
  • POST /plugins/(plugin name)/set 配置外掛。
  • POST /plugins/(plugin name)/enable 啟用外掛。
  • POST /plugins/(plugin name)/disable 停用外掛。
  • POST /plugins/(plugin name)/push 推送外掛。
  • POST /plugins/create?name=(plugin name) 建立外掛。
  • DELETE /plugins/(plugin name) 刪除外掛。
  • POST /node/(id or name)/update 現在接受 idname 來標識要更新的節點。
  • GET /images/json 現在支援 reference 過濾器。
  • GET /secrets 返回有關 secret 的資訊。
  • POST /secrets/create 建立 secret。
  • DELETE /secrets/{id} 移除 secret id
  • GET /secrets/{id} 返回有關 secret id 的資訊。
  • POST /secrets/{id}/update 更新 secret id
  • POST /services/(id or name)/update 現在接受服務名稱或服務 ID 字首作為引數。
  • POST /containers/create 添加了 2 個內建的 log-opts,適用於所有日誌驅動程式:mode (blocking|non-blocking) 和 max-buffer-size (例如 2m),它們啟用了一個非阻塞日誌緩衝區。
  • POST /containers/create 現在接受 HostConfig.Init 欄位,用於在容器內部執行一個初始化程序,該程序轉發訊號並回收程序。

v1.24 API 更改

Docker Engine API v1.24 文件

  • POST /containers/create 現在接受 StorageOpt 欄位。
  • GET /info 現在返回 SecurityOptions 欄位,顯示是否支援 apparmorseccompselinux
  • GET /info 不再返回 ExecutionDriver 屬性。在 Docker 1.11 中與 ContainerD 整合後,此屬性不再使用。
  • GET /networks 現在支援按 labeldriver 過濾。
  • GET /containers/json 現在支援按 network 名稱或 ID 過濾容器。
  • POST /containers/create 現在接受 IOMaximumBandwidthIOMaximumIOps 欄位。僅限 Windows 守護程式。
  • 如果未指定命令,POST /containers/create 現在返回 HTTP 400“bad parameter”訊息(而不是 HTTP 500“server error”)。
  • GET /images/search 現在接受 filters 查詢引數。
  • GET /events 現在支援 reload 事件,該事件在守護程式配置重新載入時發出。
  • GET /events 現在支援按守護程式名稱或 ID 過濾。
  • GET /events 現在支援 detach 事件,該事件在從容器程序分離時發出。
  • GET /events 現在支援 exec_detach 事件,該事件在從執行程序分離時發出。
  • GET /images/json 現在支援 sincebefore 過濾器。
  • POST /containers/(id or name)/start 不再接受 HostConfig
  • POST /images/(name)/tag 不再有 force 查詢引數。
  • GET /images/search 現在支援最大返回搜尋結果 limit
  • POST /containers/{name:.*}/copy 已被移除,並從當前 API 版本開始報錯。
  • API 錯誤現在以 JSON 格式返回,而不是純文字。
  • POST /containers/createPOST /containers/(id)/start 允許您配置容器中使用的核心引數 (sysctls)。
  • POST /containers/<container ID>/execPOST /exec/<exec ID>/start 不再期望存在“Container”欄位。此屬性未使用,docker 客戶端也不再發送。
  • POST /containers/create/ 現在驗證主機名(應為有效的 RFC 1123 主機名)。
  • POST /containers/create/ HostConfig.PidMode 欄位現在接受 container:<name|id>,以便容器加入現有容器的 PID 名稱空間。

v1.23 API 更改

  • GET /containers/json 返回容器的狀態,包括 createdrestartingrunningpausedexiteddead 之一。
  • GET /containers/json 返回容器的掛載點。
  • GET /networks/(name) 現在返回一個 Internal 欄位,顯示網路是否為內部網路。
  • GET /networks/(name) 現在返回一個 EnableIPv6 欄位,顯示網路是否啟用了 IPv6。
  • POST /containers/(name)/update 現在支援更新容器的重啟策略。
  • POST /networks/create 現在支援透過設定 EnableIPv6 欄位來在網路上啟用 IPv6(使用標籤將不再起作用)。
  • GET /info 現在返回 CgroupDriver 欄位,顯示守護程式正在使用的 cgroup 驅動程式;cgroupfssystemd
  • GET /info 現在返回 KernelMemory 欄位,顯示是否支援“核心記憶體限制”。
  • 如果核心版本 >= 4.3 且支援 pids cgroup,則 POST /containers/create 現在接受 PidsLimit 欄位。
  • 如果核心版本 >= 4.3 且支援 pids cgroup,則 GET /containers/(id or name)/stats 現在返回 pids_stats
  • POST /containers/create 現在允許您覆蓋使用者名稱空間重新對映並使用容器的特權選項。
  • POST /containers/create 現在允許為命名卷指定 nocopy,這會停用從容器路徑到卷的自動複製。
  • 當登錄檔支援時,POST /auth 現在返回 IdentityToken
  • POST /containers/create 如果同時指定了 HostnameDomainname 欄位,則容器的主機名將設定為 Hostname,而不是 Hostname.Domainname
  • GET /volumes 現在支援更多過濾器,新增的過濾器是 namedriver
  • GET /containers/(id or name)/logs 現在接受 details 查詢引數,用於將提供給容器 LogOpts 的額外屬性(例如環境變數和標籤)與日誌一起流式傳輸。
  • POST /images/load 現在以 JSON 流形式返回進度資訊,並帶有一個 quiet 查詢引數來抑制進度詳細資訊。

v1.22 API 更改

  • HostConfig.LxcConf 欄位已被移除,不再在 POST /containers/createGET /containers/(id)/json 上可用。
  • POST /container/(name)/update 更新容器的資源。
  • GET /containers/json 支援 Windows 上的 isolation 過濾器。
  • GET /containers/json 現在返回容器的網路列表。
  • GET /info 現在返回 ArchitectureOSType 欄位,提供有關守護程式執行的主機架構和作業系統型別的資訊。
  • GET /networks/(name) 現在返回連線到網路的每個容器的 Name 欄位。
  • GET /version 現在以 RFC3339Nano 格式返回 BuildTime 欄位,以使其與 API 返回的其他日期/時間值保持一致。
  • AuthConfig 現在支援用於基於令牌身份驗證的 registrytoken
  • POST /containers/create 現在對 HostConfig.KernelMemory 有 4M 的最小值限制
  • 如果在推送或拉取完成之前關閉發出 API 請求的 HTTP 連線,則使用 POST /images/(name)/push 啟動的推送和使用 POST /images/create 啟動的拉取將被取消。
  • POST /containers/create 現在允許您為裝置設定讀/寫速率限制(以位元組/秒或 IO/秒為單位)。
  • GET /networks 現在支援按 nameidtype 過濾。
  • POST /containers/create 現在允許您為容器設定靜態 IPv4 和/或 IPv6 地址。
  • POST /networks/(id)/connect 現在允許您為容器設定靜態 IPv4 和/或 IPv6 地址。
  • GET /info 現在包含執行中、已停止和已暫停的容器數量。
  • POST /networks/create 現在支援透過設定 Internal 欄位來限制對網路的外部訪問。
  • POST /networks/(id)/disconnect 現在包含 Force 選項,用於強制將容器從網路中斷開。
  • GET /containers/(id)/json 現在返回容器的 NetworkID
  • POST /networks/create 現在支援 IPAM 配置中的 options 欄位,該欄位為自定義 IPAM 外掛提供選項。
  • GET /networks/{network-id} 現在返回自定義 IPAM 外掛的 IPAM 配置選項(如果可用)。
  • GET /networks/<network-id> 現在返回使用者定義網路的子網資訊。
  • GET /info 現在可以返回一個 SystemStatus 欄位,用於返回有關基於引擎構建的應用程式的附加資訊。

v1.21 API 更改

  • GET /volumes 列出所有卷驅動程式的卷。
  • POST /volumes/create 用於建立卷。
  • GET /volumes/(name) 獲取有關卷的低階資訊。
  • DELETE /volumes/(name) 刪除具有指定名稱的卷。
  • VolumeDriver 已從 config 移至 HostConfig,以使配置可移植。
  • GET /images/(name)/json 現在返回有關映象的 RepoTagsRepoDigests 的資訊。
  • config 選項現在接受 StopSignal 欄位,該欄位指定用於終止容器的訊號。
  • GET /containers/(id)/stats 將分別返回每個介面的網路資訊。
  • HostConfig 選項現在包含 DnsOptions 欄位,用於配置容器的 DNS 選項。
  • POST /build 現在可選地接受構建時變數的序列化對映。
  • GET /events 現在除了現有的 time 欄位外,還包含一個 timenano 欄位。
  • GET /events 現在支援按映象和容器標籤過濾。
  • GET /info 現在列出引擎版本資訊,並返回 CPUSharesCpuset 的資訊。
  • GET /containers/json 將返回容器使用的映象的 ImageID
  • 當容器停止或暫停時,POST /exec/(name)/start 現在將返回 HTTP 409。
  • POST /containers/create 現在在 HostConfig 中接受 KernelMemory 以指定核心記憶體限制。
  • GET /containers/(name)/json 現在接受 size 引數。將此引數設定為“1”會在 SizeRwSizeRootFs 欄位中返回容器大小資訊。
  • GET /containers/(name)/json 現在返回一個 NetworkSettings.Networks 欄位,詳細說明每個網路的網路設定。此欄位已棄用 NetworkSettings.GatewayNetworkSettings.IPAddressNetworkSettings.IPPrefixLenNetworkSettings.MacAddress 欄位,這些欄位仍為向後相容性而返回,但將在未來版本中移除。
  • GET /exec/(id)/json 現在返回一個 NetworkSettings.Networks 欄位,詳細說明每個網路的網路設定。此欄位已棄用 NetworkSettings.GatewayNetworkSettings.IPAddressNetworkSettings.IPPrefixLenNetworkSettings.MacAddress 欄位,這些欄位仍為向後相容性而返回,但將在未來版本中移除。
  • HostConfig 選項現在包含 OomScoreAdj 欄位,用於調整“壞值”啟發式。此啟發式演算法選擇在記憶體不足條件下 OOM 殺手會殺死哪些程序。

v1.20 API 更改

  • GET /containers/(id)/archive 從容器獲取檔案系統內容的存檔。
  • PUT /containers/(id)/archive 上傳內容存檔以提取到容器檔案系統中的現有目錄。
  • POST /containers/(id)/copy 已棄用,取而代之的是上述 archive 端點,該端點可用於從容器下載檔案和目錄。
  • hostConfig 選項現在接受 GroupAdd 欄位,該欄位指定容器程序將作為其執行的附加組列表。

v1.19 API 更改

  • 當守護程式檢測到與客戶端版本不匹配時(通常是客戶端比守護程式新),現在返回 HTTP 400 而不是 404。
  • GET /containers/(id)/stats 現在接受 stream 布林值,以僅獲取一組統計資訊並斷開連線。
  • GET /containers/(id)/logs 現在接受 since 時間戳引數。
  • GET /info 欄位 DebugIPv4ForwardingMemoryLimitSwapLimit 現在作為布林值返回,而不是整數。此外,該端點現在返回新的布林欄位 CpuCfsPeriodCpuCfsQuotaOomKillDisable
  • hostConfig 選項現在接受 CpuPeriodCpuQuota 欄位。
  • POST /build 接受 cpuperiodcpuquota 選項。

v1.18 API 更改

  • GET /version 現在返回 OsArchKernelVersion
  • POST /containers/createPOST /containers/(id)/start 允許您設定容器中使用的 ulimit 設定。
  • GET /info 現在返回 SystemTimeHttpProxyHttpsProxyNoProxy
  • GET /images/json 添加了一個 RepoDigests 欄位以包含映象摘要資訊。
  • POST /build 現在可以為為構建建立的所有容器設定資源約束。
  • CgroupParent 可以在主機配置中傳遞,以在特定 cgroup 下設定容器 cgroup。
  • POST /build 關閉 HTTP 請求會取消構建。
  • POST /containers/(id)/exec 在響應中包含 Warnings 欄位。