引擎 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字段。