引擎 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 響應中,但不是底層映象配置的一部分,並且已被棄用
Hostname
Domainname
AttachStdin
AttachStdout
AttachStderr
Tty
OpenStdin
StdinOnce
Image
NetworkDisabled
(未設定時已省略)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 new
ClusterVolume` 欄位返回。添加了一個新的
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-pool
dockerd 選項中指定。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 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
現在可能包含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
現在支援用於基於令牌身份驗證的registrytoken
POST /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
欄位。