引擎 API 版本歷史
v1.51 API 更改
GET /images/json現在將所有映象的Containers欄位值設定為使用該映象的容器數量。此欄位之前總是 -1。
v1.50 API 更改
GET /info現在包含一個DiscoveredDevices欄位。這是一個DeviceInfo物件的陣列,每個物件提供裝置驅動程式發現的裝置的詳細資訊。目前僅支援 CDI 裝置驅動程式。DELETE /images/{name}現在支援platforms查詢引數。它接受一個 JSON 編碼的 OCI Platform 物件陣列,允許選擇特定的平臺來刪除內容。- 已棄用:
GET /info響應中的BridgeNfIptables和BridgeNfIp6tables欄位在 API v1.48 中已棄用,現在在 API v1.50 中被省略。 - 已棄用:
GET /images/{name}/json不再返回以下Config欄位;Hostname、Domainname、AttachStdin、AttachStdout、AttachStderr、Tty、OpenStdin、StdinOnce、Image、NetworkDisabled(未設定時已省略)、MacAddress(未設定時已省略)、StopTimeout(未設定時已省略)。這些額外的欄位由於實現細節包含在響應中,但不是映象配置的一部分。這些欄位在 API v1.46 中被標記為已棄用,現在被省略。較舊的 API 版本仍會返回這些欄位,但它們始終為空。
v1.49 API 更改
GET /images/{name}/json現在支援platform引數(JSON 編碼的 OCI Platform 型別),允許指定多平臺映象的平臺進行檢查。此選項與manifests選項互斥。GET /info現在返回一個FirewallBackend,其中包含有關守護程序防火牆配置的資訊。- 已棄用:
GET /info響應中的RegistryConfig結構中的AllowNondistributableArtifactsCIDRs和AllowNondistributableArtifactsHostnames欄位在 API v1.49 中被省略。 - 已棄用:
GET /info端點中的ContainerdCommit.Expected、RuncCommit.Expected和InitCommit.Expected欄位在 API v1.48 中已棄用,現在在 API v1.49 中被省略。
v1.48 API 更改
- 已棄用:在返回 JSON 進度響應的端點(例如
POST /images/create、POST /images/{name}/push和POST /build)的流式響應中,"error" 和 "progress" 欄位已棄用。這些欄位分別在 API v1.4 (docker v0.6.0) 和 API v1.8 (docker v0.7.1) 中標記為已棄用,但仍會返回。這些欄位在未來的 API 版本中將留空或被省略。使用者應改為使用errorDetail和progressDetail欄位中的資訊。 - 已棄用:"allow-nondistributable-artifacts" 守護程序配置已棄用並預設啟用。
GET /info響應中的RegistryConfig結構中的AllowNondistributableArtifactsCIDRs和AllowNondistributableArtifactsHostnames欄位現在將始終為null,並在 API v1.49 中被省略。 - 已棄用:
GET /info響應中的BridgeNfIptables和BridgeNfIp6tables欄位現在始終為false,並在 API v1.49 中被省略。netfilter 模組現在按需載入,不再在守護程序啟動時載入,使得這些欄位過時。 GET /images/{name}/history現在支援platform引數(JSON 編碼的 OCI Platform 型別),允許指定要顯示歷史的平臺。POST /images/{name}/load和GET /images/{name}/get現在支援platform引數(JSON 編碼的 OCI Platform 型別),允許指定要載入/儲存的平臺。不傳遞此引數將導致載入/儲存完整的多平臺映象。POST /containers/create現在在設定容器範圍的Config.VolumeDriver選項與透過Mounts定義的卷結合使用時,會在響應中包含警告,因為VolumeDriver選項對這些卷無效。此警告以前由 CLI 生成,現在已移至守護程序,以便其他客戶端也可以獲取此警告。POST /containers/create現在支援image型別的Mount,用於在容器內部掛載映象。- 已棄用:
GET /info端點中的ContainerdCommit.Expected、RuncCommit.Expected和InitCommit.Expected欄位已棄用,並將在 API v1.49 中省略。 HostConfig(頂級--sysctl設定) 中用於eth0的Sysctls不再遷移到DriverOpts,如 v1.46 更改中所述。GET /images/json和GET /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}/connect和POST /containers/create現在在EndpointsConfig中接受GwPriority欄位。此值用於確定哪個網路端點為容器提供預設閘道器。選擇優先順序最高的端點。如果多個端點具有相同的優先順序,則端點按其網路名稱按字典順序排序,並選擇排序最靠前的端點。GET /containers/json現在在每個網路端點的NetworkSettings中返回一個GwPriority欄位。- API 除錯端點(
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>) 訪問。 POST /build/prune將keep-bytes重新命名為reserved-space,現在支援額外的修剪引數max-used-space和min-free-space。GET /containers/json現在返回一個與/containers/{name}/json中相同欄位的ImageManifestDescriptor欄位。此欄位僅在守護程序提供多平臺映象儲存時填充。
v1.47 API 更改
GET /images/json響應現在包含Manifests欄位,其中包含映象索引中包含的子清單的資訊。這包括平臺特定的清單和構建證明等。新欄位僅在請求也將manifests查詢引數設定為true時填充。警告:這是實驗性的,可能隨時更改,不保證向後相容性。- 當守護程序啟動時停用
bridge-nf-call-iptables或bridge-nf-call-ip6tables時,GET /info不再包含警告。現在在需要時嘗試載入br_netfilter模組,使得這些警告不準確。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
v1.46 API 更改
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 響應中,但不是底層映象配置的一部分,並且已被棄用
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(未設定時已省略)MacAddress(未設定時已省略)StopTimeout(未設定時已省略)
POST /services/create和POST /services/{id}/update現在支援 OomScoreAdj
v1.45 API 更改
POST /containers/create現在支援VolumeOptions.Subpath,它允許掛載命名卷的子路徑。POST /images/search將始終假定is-automated欄位的值為false。因此,搜尋is-automated=true將不會產生任何結果,而is-automated=false將是一個空操作。GET /images/{name}/json不再包含Container和ContainerConfig欄位。要訪問映象配置,請改用Config欄位。- 呼叫
GET /containers/{name:.*}/json返回的Aliases欄位不再包含短容器 ID,而是將精確地反映最初提交到POST /containers/create端點的值。當需要短容器 ID 時,現在應改用新引入的DNSNames。
v1.44 API 更改
- GET
/images/json現在接受一個until過濾器。它接受一個時間戳,並列出在此時間戳之前建立的所有映象。<timestamp>可以是 Unix 時間戳、日期格式的時間戳或相對於守護程序機器時間的 Go Duration 字串(例如10m、1h30m)。此更改未版本化,如果守護程序有此補丁,則會影響所有 API 版本。 GET /images/{name}/json、GET /images/json和GET /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/create、GET /containers/{id}/json和GET /containers/json現在支援BindOptions.ReadOnlyNonRecursive和BindOptions.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/create和POST /networks/{id}/connect現在將捕獲以前只在POST /containers/{id}/start期間返回的驗證錯誤。這些端點還將返回它們發現的完整驗證錯誤集,而不是隻返回第一個。請注意,此更改是*未版本化*的,並適用於所有 API 版本。POST /services/create和POST /services/{id}/update現在接受ContainerSpec.Privileges物件中的Seccomp和AppArmor欄位。這允許在 Swarm 服務中配置 Seccomp 和 AppArmor。- 一個新的端點特定
MacAddress欄位已新增到POST /containers/create上的NetworkSettings.EndpointSettings,以及POST /networks/{id}/connect上的EndpointConfig。POST /containers/create上Config中的容器範圍MacAddress欄位現已棄用。 POST /services/create和POST /services/{id}/update請求中的Networks欄位現已棄用。您應該改用TaskTemplate.Networks欄位。GET /images/{name}/json響應中的Container和ContainerConfig欄位已棄用,並且將不再包含在 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}/json時NetworkSettings中可用的HairpinMode、LinkLocalIPv6Address、LinkLocalIPv6PrefixLen、SecondaryIPAddresses、SecondaryIPv6Addresses欄位已棄用,並將在未來版本中刪除。您應該改在NetworkSettings.Networks中查詢預設網路。 - 如果映象配置中缺少
Created欄位,GET /images/{id}/json將省略Created欄位(之前為0001-01-01T00:00:00Z)。
v1.43 API 更改
POST /containers/create現在接受Annotations作為HostConfig的一部分。可用於將任意元資料附加到容器,這些元資料也將在容器啟動時傳遞給執行時。GET /images/json不再在RepoTags和RepoDigests中包含未標記映象的硬編碼<none>:<none>和<none>@<none>。在這種情況下,將生成空陣列。GET /images/{name}/json、GET /images/json和GET /system/df響應中的VirtualSize欄位已棄用,並且將不再包含在 API v1.44 中。請改用包含相同資訊的Size欄位。- 當全域性啟用此選項時,
GET /info現在在SecurityOptions字串列表中包含no-new-privileges。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
v1.42 API 更改
刪除了
GET /system/df端點上的BuilderSize欄位。此欄位在 API 1.31 中作為實驗性功能引入,自 API 1.40 以來不再使用。請改用BuildCache欄位來跟蹤構建器元件使用的儲存。POST /containers/{id}/stop和POST /containers/{id}/restart現在接受signal查詢引數,該引數允許覆蓋容器的預設停止訊號。GET /images/json現在接受查詢引數shared-size。當設定為true時,返回的映象將包含SharedSize,它提供與系統上存在的其他映象共享的磁碟空間大小。GET /system/df現在接受查詢引數type。設定後,僅為指定的物件型別計算並返回資料。該引數可以指定多次以選擇多個物件型別。支援的值有:container、image、volume、build-cache。GET /system/df現在可以併發使用。如果在一個先前的請求仍在處理時發出請求,則該請求將在完成時接收到已在執行的計算結果。以前,在這種情況下會返回錯誤 (a disk usage operation is already running)。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。POST /images/create現在支援透過platform查詢引數傳遞的作業系統和架構,當使用fromSrc選項從存檔匯入映象時。以前,只使用作業系統,架構被忽略。如果未設定platform選項,則使用主機的作業系統和架構作為預設值。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。如果提供了無效的
condition,POST /containers/{id}/wait端點現在返回400狀態碼(在 API 1.30 及更高版本上)。從
POST /containers/create和POST /containers/{id}/update端點中刪除了KernelMemory欄位,在 API 版本v1.42及更高版本上,它設定的任何值都將被忽略。較舊的 API 版本仍然接受此欄位,但可能無效,具體取決於所使用的核心版本和 OCI 執行時。如果未設定
KernelMemory和KernelMemoryTCP,GET /containers/{id}/json現在會省略它們。如果主機或主機配置不支援
KernelMemory和KernelMemoryTCP(如果使用 cgroups v2),GET /info現在會省略它們。GET /_ping和HEAD /_ping現在預設返回Builder-Version。此標頭包含要使用的預設構建器,並且是守護程序推薦的。但是,由客戶端選擇使用哪個構建器。在 Linux 上,預設值為版本 "2" (BuildKit),但守護程序可以配置為推薦版本 "1" (經典構建器)。Windows 尚未支援 BuildKit 用於原生 Windows 映象,並使用 "1" (經典構建器) 作為預設值。
此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
GET /_ping和HEAD /_ping現在返回一個Swarm標頭,它允許客戶端檢測守護程序是否啟用了 Swarm,而無需呼叫額外的端點。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。客戶端必須將此標頭視為“可選”,如果標頭不存在,則回退到使用其他端點獲取此資訊。Swarm標頭可以包含以下值之一- "不活動"
- "待定"
- "錯誤"
- "已鎖定"
- "活動/工作節點"
- "活動/管理節點"
POST /containers/create對於 Windows 容器現在在HostConfig.Resources.Devices.PathOnHost中接受新的語法。除了現有的class/<GUID>語法,現在也識別<IDType>://<ID>。對特定<IDType>值的支援取決於底層實現和 Windows 版本。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。GET /containers/{id}/attach、GET /exec/{id}/start、GET /containers/{id}/logs、GET /services/{id}/logs和GET /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 /volumes和GET /system/df返回的卷資訊現在可以包含一個ClusterVolume,如果該卷是叢集卷(要求守護程序是 Swarm 管理器)。Volume型別,由Added newClusterVolume` 欄位返回。添加了一個新的
PUT /volumes{name}端點來更新叢集卷 (CNI)。叢集卷僅在守護程序是 Swarm 管理器時才支援。GET /containers/{name}/attach/ws端點現在接受stdin、stdout和stderr查詢引數,以僅附加到配置的流。注意:這些引數在較舊的 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 值(true、1)以獲得舊行為。
v1.41 API 更改
GET /events現在在修剪資源完成後返回prune事件。修剪事件針對container、network、volume、image和builder返回,並具有reclaimed屬性,指示回收的空間量(以位元組為單位)。GET /info現在返回一個CgroupVersion欄位,其中包含 cgroup 版本。GET /info現在返回一個DefaultAddressPools欄位,其中包含本地網路的自定義預設地址池列表,可以在daemon.json檔案或--default-address-pooldockerd 選項中指定。POST /services/create和POST /services/{id}/update現在支援BindOptions.NonRecursive。GET /info中的ClusterStore和ClusterAdvertise欄位已棄用,如果它們包含空值,則現在被省略。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。filter(單數)查詢引數已從GET /images/json端點中刪除,該引數在 Docker 1.13 中已棄用,取而代之的是filters選項。使用 API 版本 1.40 或更低版本時,該引數仍然可用。GET /services現在將CapAdd和CapDrop作為ContainerSpec的一部分返回。GET /services/{id}現在將CapAdd和CapDrop作為ContainerSpec的一部分返回。POST /services/create現在接受CapAdd和CapDrop作為ContainerSpec的一部分。POST /services/{id}/update現在接受CapAdd和CapDrop作為ContainerSpec的一部分。GET /tasks現在將CapAdd和CapDrop作為ContainerSpec的一部分返回。GET /tasks/{id}現在將CapAdd和CapDrop作為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 requestedPOST /containers/create在 Linux 上現在預設使用HostConfig.CgroupnsMode=private建立容器,如果未明確指定 IpcMode。可以透過使用CgroupNamespaceMode守護程序配置引數將每個守護程序的預設值更改回shareable。GET /info現在返回一個OSVersion欄位,其中包含作業系統的版本。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。如果
SystemStatus欄位沒有值,GET /info將不再返回該欄位。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。GET /services現在接受查詢引數status。當設定為true時,返回的服務將包含ServiceStatus,它提供服務的期望、執行中和已完成的任務計數。GET /services現在可能包含ReplicatedJob或GlobalJob作為ServiceSpec中的Mode。GET /services/{id}現在可能包含ReplicatedJob或GlobalJob作為ServiceSpec中的Mode。POST /services/create現在接受ReplicatedJob或GlobalJob作為ServiceSpec中的Mode。POST /services/{id}/update接受更新ServiceSpec.Mode中ReplicatedJob物件的欄位。但是,服務模式仍然無法更改。GET /services現在包含ReplicatedJob或GlobalJob模式服務的JobStatus。GET /services/{id}現在包含ReplicatedJob或GlobalJob模式服務的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 更改
/_ping端點現在可以使用GET或HEAD請求訪問。當使用HEAD請求訪問時,所有頭都返回,但正文為空 (Content-Length: 0)。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。建議客戶端嘗試使用HEAD,但如果HEAD請求失敗,則回退到GET。GET /_ping和HEAD /_ping現在設定Cache-Control和Pragma標頭以防止結果被快取。此更改未版本化,如果守護程序具有此補丁,則會影響所有 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/create、GET /containers/{id}/json和GET /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/create和POST /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 更改
- 如果守護程序無法獲取此資訊,
GET /info現在為KernelVersion和OperatingSystem返回空字串,而不是<unknown>。 - 如果已向守護程序應用許可證,
GET /info現在返回有關產品許可證的資訊。 GET /info現在返回一個Warnings欄位,其中包含有關缺失功能或與守護程序配置相關的問題的警告和資訊訊息。POST /swarm/init現在接受DefaultAddrPool屬性來設定全域性範圍預設地址池。POST /swarm/init現在接受SubnetSize屬性來設定全域性範圍網路,透過為每個此類網路提供子網掩碼的長度。POST /session(在 V1.31 中新增)不再是實驗性的。此端點可用於在客戶端和守護程序之間執行互動式長期協議。
V1.38 API 更改
GET /tasks和GET /tasks/{id}現在返回一個NetworkAttachmentSpec欄位,其中包含連線到“可附加”swarm 範圍網路的非服務容器的ContainerID。
v1.37 API 更改
POST /containers/create和POST /services/create現在支援暴露 SCTP 埠。POST /configs/create和POST /configs/{id}/create現在接受Templating驅動程式。GET /configs和GET /configs/{id}現在返回配置的Templating驅動程式。POST /secrets/create和POST /secrets/{id}/create現在接受Templating驅動程式。GET /secrets和GET /secrets/{id}現在返回 secret 的Templating驅動程式。
v1.36 API 更改
Get /events現在在 exec 程序終止時返回exec_die事件。
v1.35 API 更改
POST /services/create和POST /services/(id)/update現在接受容器規範上的Isolation欄位,以設定執行服務的容器的隔離技術(default、process或hyperv)。此配置僅用於 Windows 容器。GET /containers/(name)/logs現在支援一個額外的查詢引數:until,它返回在指定時間戳之前發生的日誌行。POST /containers/{id}/exec現在接受WorkingDir屬性,以設定 exec 程序的工作目錄,獨立於容器的工作目錄。Get /version現在返回一個Platform.Name欄位,Moby 產品可以使用它來返回有關平臺的資訊。Get /version現在返回一個Components欄位,可用於返回有關所用元件的資訊。關於引擎本身的資訊現在作為“元件”版本包含在內,幷包含頂層Version、GitCommit、APIVersion、MinAPIVersion、GoVersion、Os、Arch、BuildTime、KernelVersion和Experimental欄位的所有資訊。今後,將優先使用Components部分的資訊,而不是其頂層對應項。
v1.34 API 更改
POST /containers/(name)/wait?condition=removed現在也在容器刪除失敗的情況下返回。響應 JSON 中添加了一個名為Error的結構指標,以指示失敗。如果Error為null,則容器刪除成功,否則,表示容器刪除失敗的錯誤訊息文字可從Error.Message欄位獲取。
v1.33 API 更改
GET /events現在支援過濾 4 種更多型別的事件:config、node、secret和service。
v1.32 API 更改
POST /images/create現在接受os[/arch[/variant]]形式的platform引數。POST /containers/create現在接受HostConfig.IpcMode屬性的其他值。新值為private、shareable和none。DELETE /networks/{id or name}修復了一個問題,即與另一個網路名稱相同的name能夠掩蓋該id。如果同時存在具有給定*名稱*的網路和具有給定*id*的網路,則現在刪除具有給定*id*的網路。此更改未版本化,如果守護程序具有此補丁,則會影響所有 API 版本。
v1.31 API 更改
- 當 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,它將根據作用域(local、swarm或global)過濾網路。POST /session是一個新端點,可用於在客戶端和守護程序之間執行互動式長期協議。此端點是實驗性的,僅在守護程序啟用了實驗性功能時可用。GET /images/(name)/get現在包含一個ImageMetadata欄位,其中包含引擎本地的映象元資料,而不是映象配置的一部分。- 當
TaskTemplate.Runtime設定為plugin時,POST /services/create現在接受PluginSpec。 GET /events現在支援配置事件create、update和remove,這些事件在使用者建立、更新或刪除配置時發出。GET /volumes/和GET /volumes/{name}現在返回一個CreatedAt欄位,其中包含卷的建立日期/時間。如果卷的建立日期/時間未知,則省略此欄位。對於作用域為“global”的卷,此欄位表示卷的本地*例項*的建立日期/時間,這可能與不同節點上相同卷的例項不同。GET /system/df現在為Volumes返回一個CreatedAt欄位。有關此欄位的描述,請參閱/volumes/端點。
v1.30 API 更改
GET /info現在返回支援的日誌驅動程式列表,包括外掛。- 如果節點在 swarm 中,
GET /info和GET /swarm現在返回叢集範圍的 swarm CA 資訊:叢集根 CA 證書,以及叢集 TLS 葉證書頒發者的主題和公鑰。它還顯示所需的 CA 簽名證書(如果已作為規範的一部分提供)。 POST /build/現在(當不靜默時)在 JSON 輸出流中生成一個Aux訊息,其有效負載為types.BuildResult,用於每個生成的映象。最後一個此類訊息將引用構建生成的映象。- 如果節點是 swarm 的一部分,
GET /nodes和GET /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/create和POST /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 更改
DELETE /networks/(name)現在允許移除入口網路,即用於提供路由網格的網路。POST /networks/create現在支援建立入口網路,透過指定一個Ingress布林欄位。目前,這僅在使用覆蓋網路驅動程式時支援。GET /networks/(name)現在返回一個Ingress欄位,顯示網路是否是入口網路。GET /networks/現在支援scope過濾器,用於根據網路模式(swarm、global或local)過濾網路。POST /containers/create、POST /service/create和POST /services/(id or name)/update現在接受StartPeriod欄位作為HealthConfig的一部分,允許指定一個週期,在此期間容器即使健康檢查不透過也不應被視為不健康。GET /services/(id)現在接受一個insertDefaults查詢引數,用於將預設值合併到服務檢查輸出中。POST /containers/prune、POST /images/prune、POST /volumes/prune和POST /networks/prune現在支援label過濾器,用於根據標籤過濾容器、映象、卷或網路。標籤過濾器的格式可以是label=<key>/label=<key>=<value>以刪除具有指定標籤的那些,或者label!=<key>/label!=<key>=<value>以刪除不具有指定標籤的那些。POST /services/create現在接受Privileges作為ContainerSpec的一部分。Privileges 目前包括CredentialSpec和SELinuxContext。
v1.28 API 更改
POST /containers/create現在包含一個Consistency欄位,用於指定每個Mount的一致性級別,可能的值為default、consistent、cached或delegated。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現在支援publish和expose過濾器,用於過濾暴露或釋出某些埠的容器。POST /services/create和POST /services/(id or name)/update現在接受ReadOnly引數,該引數將容器的根檔案系統掛載為只讀。POST /build現在接受extrahosts引數,用於在構建期間指定主機到 IP 的對映。POST /services/create和POST /services/(id or name)/update現在接受FailureAction的rollback值。POST /services/create和POST /services/(id or name)/update現在接受一個可選的RollbackConfig物件,用於指定回滾選項。GET /services現在支援mode過濾器,用於根據服務模式(global或replicated)過濾服務。POST /containers/(name)/update現在支援更新NanoCpus,它表示 CPU 配額,單位為 10-9 CPUs。POST /plugins/{name}/disable現在接受force查詢引數,即使外掛仍在使用中,也可以停用它。
v1.27 API 更改
GET /containers/(id or name)/stats現在在precpu_stats和cpu_stats中都包含online_cpus欄位。如果此欄位為nil,則為了與舊版守護程式相容,應使用相應的cpu_usage.percpu_usage陣列的長度。
v1.26 API 更改
POST /plugins/(plugin name)/upgrade升級外掛。
v1.25 API 更改
- 所有 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.Type為layers+base)的 Windows 映象,這已不再受支援,並且RootFS.BaseLayer欄位已被移除。GET /info現在返回Isolation。POST /containers/create現在在 HostConfig 中接受AutoRemove,以便在容器程序退出時在守護程式端啟用容器的自動刪除。GET /containers/json和GET /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欄位,該欄位取代了Binds、Volumes和Tmpfs。注意:Binds、Volumes和Tmpfs仍然可用,並且可以與Mounts結合使用。POST /build現在在開始構建之前對Dockerfile執行初步驗證,如果語法不正確則返回錯誤。請注意,此更改是未版本化的,並適用於所有 API 版本。POST /build接受cachefrom引數以指定用於構建快取的映象。- 如果提供了尾部斜槓但未提供
name或id,則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/create和POST /services/(id or name)/update現在接受Monitor和MaxFailureRatio引數,用於控制服務更新期間對故障的響應。POST /services/(id or name)/update現在在TaskTemplate中接受ForceUpdate引數,這會導致服務更新,即使沒有通常會觸發更新的更改。POST /services/create和POST /services/(id or name)/update現在返回一個Warnings陣列。GET /networks/(name)現在在響應中返回Created欄位,以顯示網路建立時間。POST /containers/(id or name)/exec現在接受Env欄位,其中包含要在命令執行上下文中設定的環境變數列表。GET /volumes、GET /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標頭,指定是否啟用了實驗性功能(值可以是true或false)。 - 每個 API 響應現在都包含一個
API-Version標頭,指定伺服器的預設 API 版本。 hostConfig選項現在接受CpuRealtimePeriod和CpuRtRuntime欄位,用於在核心中啟用CONFIG_RT_GROUP_SCHED時為即時任務分配 CPU 執行時。- 如果守護程式中啟用了使用者名稱空間,則
GET /info響應中的SecurityOptions欄位現在包含userns。 GET /nodes和GET /node/(id or name)現在返回Addr作為節點Status的一部分,該地址是該節點連線到管理器的地址。HostConfig欄位現在包含NanoCpus,它表示 CPU 配額,單位為 10-9 CPUs。GET /info現在返回有關安全選項的更結構化資訊。HostConfig欄位現在包含CpuCount,它表示容器可用於執行的 CPU 數量。僅限 Windows 守護程式。POST /services/create和POST /services/(id or name)/update現在接受TTY引數,該引數在容器中分配一個偽 TTY。POST /services/create和POST /services/(id or name)/update現在接受DNSConfig引數,該引數透過Nameservers、Search和Options指定解析器配置檔案 (resolv.conf) 中的 DNS 相關配置。POST /services/create和POST /services/(id or name)/update現在支援服務TaskSpec.Placement.Constraints欄位中的node.platform.arch和node.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現在接受id或name來標識要更新的節點。GET /images/json現在支援reference過濾器。GET /secrets返回有關 secret 的資訊。POST /secrets/create建立 secret。DELETE /secrets/{id}移除 secretid。GET /secrets/{id}返回有關 secretid的資訊。POST /secrets/{id}/update更新 secretid。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 更改
POST /containers/create現在接受StorageOpt欄位。GET /info現在返回SecurityOptions欄位,顯示是否支援apparmor、seccomp或selinux。GET /info不再返回ExecutionDriver屬性。在 Docker 1.11 中與 ContainerD 整合後,此屬性不再使用。GET /networks現在支援按label和driver過濾。GET /containers/json現在支援按network名稱或 ID 過濾容器。POST /containers/create現在接受IOMaximumBandwidth和IOMaximumIOps欄位。僅限 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現在支援since和before過濾器。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/create和POST /containers/(id)/start允許您配置容器中使用的核心引數 (sysctls)。POST /containers/<container ID>/exec和POST /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返回容器的狀態,包括created、restarting、running、paused、exited或dead之一。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 驅動程式;cgroupfs或systemd。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如果同時指定了Hostname和Domainname欄位,則容器的主機名將設定為Hostname,而不是Hostname.Domainname。GET /volumes現在支援更多過濾器,新增的過濾器是name和driver。GET /containers/(id or name)/logs現在接受details查詢引數,用於將提供給容器LogOpts的額外屬性(例如環境變數和標籤)與日誌一起流式傳輸。POST /images/load現在以 JSON 流形式返回進度資訊,並帶有一個quiet查詢引數來抑制進度詳細資訊。
v1.22 API 更改
HostConfig.LxcConf欄位已被移除,不再在POST /containers/create和GET /containers/(id)/json上可用。POST /container/(name)/update更新容器的資源。GET /containers/json支援 Windows 上的isolation過濾器。GET /containers/json現在返回容器的網路列表。GET /info現在返回Architecture和OSType欄位,提供有關守護程式執行的主機架構和作業系統型別的資訊。GET /networks/(name)現在返回連線到網路的每個容器的Name欄位。GET /version現在以 RFC3339Nano 格式返回BuildTime欄位,以使其與 API 返回的其他日期/時間值保持一致。AuthConfig現在支援用於基於令牌身份驗證的registrytokenPOST /containers/create現在對HostConfig.KernelMemory有 4M 的最小值限制- 如果在推送或拉取完成之前關閉發出 API 請求的 HTTP 連線,則使用
POST /images/(name)/push啟動的推送和使用POST /images/create啟動的拉取將被取消。 POST /containers/create現在允許您為裝置設定讀/寫速率限制(以位元組/秒或 IO/秒為單位)。GET /networks現在支援按name、id和type過濾。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現在返回有關映象的RepoTags和RepoDigests的資訊。config選項現在接受StopSignal欄位,該欄位指定用於終止容器的訊號。GET /containers/(id)/stats將分別返回每個介面的網路資訊。HostConfig選項現在包含DnsOptions欄位,用於配置容器的 DNS 選項。POST /build現在可選地接受構建時變數的序列化對映。GET /events現在除了現有的time欄位外,還包含一個timenano欄位。GET /events現在支援按映象和容器標籤過濾。GET /info現在列出引擎版本資訊,並返回CPUShares和Cpuset的資訊。GET /containers/json將返回容器使用的映象的ImageID。- 當容器停止或暫停時,
POST /exec/(name)/start現在將返回 HTTP 409。 POST /containers/create現在在 HostConfig 中接受KernelMemory以指定核心記憶體限制。GET /containers/(name)/json現在接受size引數。將此引數設定為“1”會在SizeRw和SizeRootFs欄位中返回容器大小資訊。GET /containers/(name)/json現在返回一個NetworkSettings.Networks欄位,詳細說明每個網路的網路設定。此欄位已棄用NetworkSettings.Gateway、NetworkSettings.IPAddress、NetworkSettings.IPPrefixLen和NetworkSettings.MacAddress欄位,這些欄位仍為向後相容性而返回,但將在未來版本中移除。GET /exec/(id)/json現在返回一個NetworkSettings.Networks欄位,詳細說明每個網路的網路設定。此欄位已棄用NetworkSettings.Gateway、NetworkSettings.IPAddress、NetworkSettings.IPPrefixLen和NetworkSettings.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欄位Debug、IPv4Forwarding、MemoryLimit和SwapLimit現在作為布林值返回,而不是整數。此外,該端點現在返回新的布林欄位CpuCfsPeriod、CpuCfsQuota和OomKillDisable。hostConfig選項現在接受CpuPeriod和CpuQuota欄位。POST /build接受cpuperiod和cpuquota選項。
v1.18 API 更改
GET /version現在返回Os、Arch和KernelVersion。POST /containers/create和POST /containers/(id)/start允許您設定容器中使用的 ulimit 設定。GET /info現在返回SystemTime、HttpProxy、HttpsProxy和NoProxy。GET /images/json添加了一個RepoDigests欄位以包含映象摘要資訊。POST /build現在可以為為構建建立的所有容器設定資源約束。CgroupParent可以在主機配置中傳遞,以在特定 cgroup 下設定容器 cgroup。POST /build關閉 HTTP 請求會取消構建。POST /containers/(id)/exec在響應中包含Warnings欄位。