引擎API版本历史

v1.47 API 变更

Docker Engine API v1.47 文档

  • GET /images/json 响应现在包括 Manifests 字段,该字段包含有关图像索引中包含的子清单的信息。这包括特定平台的清单和构建证明等内容。只有在请求还将 manifests 查询参数设置为 true 时,才会填充此新字段。 警告:这是实验性的,可能会随时更改,且不保证向后兼容性。

v1.46 API 变更

Docker Engine API v1.46 文档

  • GET /info 现在包含一个 Containerd 字段,其中包含有关守护程序用于运行容器和插件的 containerd API 套接字位置和 containerd 命名空间的信息。
  • POST /containers/create 字段 NetworkingConfig.EndpointsConfig.DriverOpts, 和 POST /networks/{id}/connect 字段 EndpointsConfig.DriverOpts,现在 支持标签 com.docker.network.endpoint.sysctls 用于设置每个接口的 sysctls。该值是一个逗号分隔的 sysctl 分配列表, 接口名称必须为 "IFNAME"。例如,要设置 net.ipv4.config.eth0.log_martians=1,使用 net.ipv4.config.IFNAME.log_martians=1。在 API 版本 1.46 及以下,顶层的 --sysctl 设置对于 eth0 将在可能的情况下迁移到 DriverOpts。 此自动迁移将在未来的版本中移除。
  • GET /containers/json 现在返回容器的注释。
  • POST /images/{name}/push 现在支持一个 platform 参数(JSON 编码的 OCI 平台类型),该参数允许从多平台镜像中选择特定的平台清单。
  • 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 类型是图像配置的超集,虽然图像的配置被用作从图像创建的容器的模板,但额外的字段是在运行时设置的(从创建容器时传递的选项)而不是从图像配置中获取的。

这些字段从未设置(并且总是返回类型的默认值),但在留空时不会在响应中省略。由于这些字段原本不打算成为图像配置响应的一部分,它们已被弃用,并将从API中移除。

以下字段目前包含在API响应中,但不是底层图像的Config的一部分,并且已弃用:

  • Hostname
  • Domainname
  • AttachStdin
  • AttachStdout
  • AttachStderr
  • Tty
  • OpenStdin
  • StdinOnce
  • Image
  • NetworkDisabled(除非设置,否则已省略)
  • MacAddress(除非设置,否则已省略)
  • StopTimeout(除非设置,否则已省略)
  • POST /services/createPOST /services/{id}/update 现在支持 OomScoreAdj

v1.45 API 变更

Docker Engine API v1.45 文档

  • POST /containers/create 现在支持 VolumeOptions.Subpath,它允许挂载命名卷的子路径。
  • POST /images/search 将始终假定 is-automated 字段的值为 false。因此,搜索 is-automated=true 将不会产生任何结果,而 is-automated=false 将不会有任何操作。
  • GET /images/{name}/json 不再包含 ContainerContainerConfig 字段。要访问镜像配置,请改用 Config 字段。
  • 在调用GET /containers/{name:.*}/json时返回的Aliases字段不再包含短容器ID,而是会准确反映最初提交给POST /containers/create端点的值。当需要短容器ID时,现在应使用新引入的DNSNames

v1.44 API 变更

Docker Engine API v1.44 文档

  • GET /images/json 现在接受一个 until 过滤器。这接受一个时间戳,并列出在此之前创建的所有镜像。 可以是 Unix 时间戳、日期格式的时间戳,或相对于守护进程机器时间的 Go 持续时间字符串(例如 10m, 1h30m)。此更改未进行版本控制,如果守护进程应用了此补丁,则会影响所有 API 版本。
  • GET /images/{name}/jsonGET /images/jsonGET /system/df响应中的VirtualSize字段现在被省略。请改用Size字段,它包含相同的信息。
  • 已弃用:GET /images/search 响应中的 is_automated 字段已被弃用,并且将来将始终设置为 false,因为 Docker Hub 正在弃用其搜索 API 中的 is_automated 字段。此弃用没有版本控制,适用于所有 API 版本。
  • 已弃用:GET /images/search 端点的 is-automated 过滤器。 Docker Hub 的搜索 API 已弃用 is_automated 字段。 因此,搜索 is-automated=true 将不会返回任何结果。此弃用未进行版本控制,适用于所有 API 版本。
  • 在内核版本 >= 5.12 且运行时支持该功能的情况下,只读绑定挂载现在会递归地设置为只读。 POST /containers/create, GET /containers/{id}/json, 和 GET /containers/json 现在支持 BindOptions.ReadOnlyNonRecursiveBindOptions.ReadOnlyForceRecursive 来自定义行为。
  • POST /containers/create 现在接受一个 HealthConfig.StartInterval 来设置启动期间健康检查的间隔。
  • GET /info 现在包含一个 CDISpecDirs 字段,指示配置的 CDI 规范目录。使用此设置需要守护进程启用实验性功能,对于非实验性守护进程,始终返回空列表。
  • POST /networks/create 现在如果 IPAMConfig 有无效值,则返回 400。请注意,此更改是未版本化的,并应用于支持版本 1.44 的守护程序上的所有 API 版本。
  • POST /networks/create 现在如果使用重复的名称会系统性地失败。因此,CheckDuplicate 字段现在已被弃用。请注意,此更改是未版本化的,并应用于支持版本1.44的所有守护程序API版本。
  • POST /containers/create 现在接受在 NetworkingConfig.EndpointSettings 中的多个 EndpointSettings
  • POST /containers/createPOST /networks/{id}/connect 现在会捕获之前仅在 POST /containers/{id}/start 期间返回的验证错误。这些端点还将返回它们发现的所有验证错误,而不是仅返回第一个错误。请注意,此更改是未版本化的,适用于所有API版本。
  • POST /services/createPOST /services/{id}/update 现在接受 ContainerSpec.Privileges 对象中的 SeccompAppArmor 字段。这允许在 Swarm 服务中对 Seccomp 和 AppArmor 进行一些配置。
  • 一个新的特定于端点的MacAddress字段已添加到NetworkSettings.EndpointSettings中 在POST /containers/create上,以及在POST /networks/{id}/connect上的EndpointConfig中。 在POST /containers/create上的Config中的容器范围的MacAddress字段现在已被弃用。
  • POST /services/createPOST /services/{id}/update请求中的Networks字段现已弃用。您应该改用TaskTemplate.Networks字段。
  • GET /images/{name}/json 响应中的 ContainerContainerConfig 字段已被弃用,将不再包含在 API v1.45 中。
  • GET /info 现在在 Runtimes 中包含 status 属性。
  • 一个新字段名为DNSNames,包含所有非完全限定的DNS名称 容器在特定网络上承担的角色已被添加到GET /containers/{name:.*}/json
  • 在v1.44及更早版本中,调用GET /containers/{name:.*}/json返回的Aliases字段包含短容器ID。这将在下一个API版本v1.45中发生变化。从该API版本开始,这个特定值将从Aliases字段中移除,以便该字段准确反映最初提交给POST /containers/create端点的值。现在应使用新引入的DNSNames来代替。
  • 在调用GET /containers/{id}/json时,NetworkSettings中可用的字段HairpinModeLinkLocalIPv6AddressLinkLocalIPv6PrefixLenSecondaryIPAddressesSecondaryIPv6Addresses已被弃用,并将在未来的版本中移除。你应该在NetworkSettings.Networks中查找默认网络。
  • GET /images/{id}/json 省略了 Created 字段(之前是 0001-01-01T00:00:00Z) 如果图像配置中缺少 Created 字段。

v1.43 API 变更

Docker Engine API v1.43 文档

  • POST /containers/create 现在接受 Annotations 作为 HostConfig 的一部分。 可以用于将任意元数据附加到容器上,这些元数据在容器启动时也会传递给运行时。
  • GET /images/json 不再在未标记的镜像的 RepoTagsRepoDigests 中包含硬编码的 :@。在这种情况下,将生成空数组。
  • GET /images/{name}/jsonGET /images/jsonGET /system/df 响应中的 VirtualSize 字段已被弃用,将不再包含在 API v1.44 中。请改用 Size 字段,它包含相同的信息。
  • GET /info 现在在全局启用此选项时,会在 SecurityOptions 字符串列表中包含 no-new-privileges。此更改未进行版本控制,如果守护程序应用了此补丁,将影响所有 API 版本。

v1.42 API 变更

Docker Engine API v1.42 文档

  • 移除了GET /system/df端点上的BuilderSize字段。该字段在API 1.31中作为实验性功能的一部分引入,自API 1.40以来不再使用。请改用BuildCache字段来跟踪构建器组件使用的存储。

  • POST /containers/{id}/stopPOST /containers/{id}/restart 现在接受一个 signal 查询参数,该参数允许覆盖容器的默认停止信号。

  • GET /images/json 现在接受查询参数 shared-size。当设置为 true 时, 返回的图像将包括 SharedSize,它提供了与系统上其他图像共享的磁盘大小。

  • GET /system/df 现在接受查询参数 type。当设置时,仅计算并返回指定对象类型的数据。该参数可以多次指定以选择多个对象类型。支持的值为:containerimagevolumebuild-cache

  • GET /system/df 现在可以并发使用。如果在处理前一个请求时发出请求,该请求将在已经运行的计算完成后接收其结果。以前,在这种情况下会返回一个错误(a disk usage operation is already running)。此更改未进行版本控制,如果守护程序有此补丁,则会影响所有API版本。

  • 现在,POST /images/create 支持在使用 fromSrc 选项从存档导入镜像时,通过 platform 查询参数传递的操作系统和架构。以前,只使用操作系统,而忽略了架构。如果没有设置 platform 选项,则默认使用主机的操作系统和架构。此更改未进行版本控制,如果守护程序应用了此补丁,则会影响所有 API 版本。

  • 如果提供了无效的condition(在API 1.30及以上版本中),POST /containers/{id}/wait 端点现在会返回一个400状态码。

  • POST /containers/createPOST /containers/{id}/update端点中移除了KernelMemory字段,在API版本v1.42及以上版本中,设置的任何值都将被忽略。较旧的API版本仍然接受此字段,但可能不会生效,具体取决于使用的内核版本和OCI运行时。

  • GET /containers/{id}/json 现在如果未设置 KernelMemoryKernelMemoryTCP,则会省略它们。

  • GET /info 现在会省略 KernelMemoryKernelMemoryTCP,如果主机或主机的配置不支持它们(如果使用的是 cgroups v2)。

  • GET /_pingHEAD /_ping 现在默认返回 Builder-Version。 这个头部包含了默认使用的构建器,并且是由守护进程推荐的。然而,客户端可以选择使用哪个构建器。

    Linux上的默认值是版本"2"(BuildKit),但可以将守护程序配置为推荐版本"1"(经典构建器)。Windows尚未支持用于原生Windows镜像的BuildKit,并使用"1"(经典构建器)作为默认值。

    此更改未进行版本控制,如果守护程序应用了此补丁,将影响所有API版本。

  • GET /_pingHEAD /_ping 现在返回一个 Swarm 头信息,这使得客户端能够检测守护进程是否启用了 Swarm,而无需调用额外的端点。 此更改未进行版本控制,如果守护进程应用了此补丁,则会影响所有 API 版本。客户端必须将此头信息视为“可选的”,如果头信息不存在,则回退到使用其他端点来获取此信息。

    Swarm 头部可以包含以下值之一:

    • "inactive"
    • "pending"
    • "error"
    • "locked"
    • "active/worker"
    • "active/manager"
  • POST /containers/create 现在为 Windows 容器接受 HostConfig.Resources.Devices.PathOnHost 中的新语法。除了现有的 class/ 语法外,现在也识别 ://。对特定 值的支持取决于底层实现和 Windows 版本。此更改未进行版本控制,如果守护程序应用了此补丁,则会影响所有 API 版本。

  • GET /containers/{id}/attach, GET /exec/{id}/start, GET /containers/{id}/logs GET /services/{id}/logsGET /tasks/{id}/logs 现在在向客户端发送多路复用的 stdout/stderr 流时,将 Content-Type 头设置为 application/vnd.docker.multiplexed-stream,否则设置为 application/vnd.docker.raw-stream

  • POST /volumes/create 现在接受一个新的 ClusterVolumeSpec 来创建一个集群卷(CNI)。此选项仅在守护进程是 Swarm 管理器时可用。创建时的卷响应现在还可以包含一个 ClusterVolume 字段,其中包含有关创建的卷的信息。

  • BuildCache.Parent 字段,由 GET /system/df 返回,已被弃用 并且现在被省略。v1.42 之前的 API 版本继续包含此字段。

  • GET /system/df 现在包含一个新的 Parents 字段,用于“build-cache”记录, 该字段包含构建缓存记录的父ID列表。

  • GET /volumes/{name}GET /volumesGET /system/df返回的卷信息现在可以包含一个ClusterVolume,如果该卷是集群卷(需要守护进程是Swarm管理器)。

  • Added new ClusterVolume`字段返回的Volume类型

  • 添加了一个新的PUT /volumes{name}端点来更新集群卷(CNI)。 只有在守护进程是Swarm管理器时,才支持集群卷。

  • GET /containers/{name}/attach/ws 端点现在接受 stdinstdoutstderr 查询参数,以便仅附加到配置的流。

    注意:这些参数在旧版API版本中已有文档记录,但实际上并未得到支持。v1.42之前的API版本会继续忽略这些参数,并默认附加到所有流。为了保留v1.42之前的行为,请设置所有三个查询参数(?stdin=1,stdout=1,stderr=1)。

  • POST /containers/create 在 Linux 上现在尊重 HostConfig.ConsoleSize 属性。 容器会立即以所需的终端大小创建,客户端不再需要自行设置所需的大小。

  • POST /containers/create 允许设置 CreateMountpoint 以便在缺失时创建主机路径。这带来了与 Binds 的同等性。

  • POST /containers/create 如果BindOptions|VolumeOptions|TmpfsOptions 设置了不匹配的挂载类型,则拒绝请求。

  • POST /containers/{id}/exec 现在接受一个可选的 ConsoleSize 参数。 它允许在创建执行进程时立即设置控制台大小。

  • POST /volumes/prune 现在默认只会清理“匿名”卷(未命名的卷)。一个新的过滤器参数 all 可以设置为真值(true1)以恢复旧的行为。

v1.41 API 变更

Docker Engine API v1.41 文档

  • GET /events 现在在修剪资源完成后返回 prune 事件。 修剪事件会为 containernetworkvolumeimagebuilder 返回,并且具有一个 reclaimed 属性,表示回收的空间量(以字节为单位)。

  • GET /info 现在返回一个 CgroupVersion 字段,包含 cgroup 版本。

  • GET /info 现在返回一个 DefaultAddressPools 字段,包含本地网络的自定义默认地址池列表,这些可以在 daemon.json 文件或 --default-address-pool dockerd 选项中指定。

  • POST /services/createPOST /services/{id}/update 现在支持 BindOptions.NonRecursive

  • GET /info 中的 ClusterStoreClusterAdvertise 字段已被弃用, 如果它们包含空值,现在将被省略。此更改未进行版本控制, 如果守护程序应用了此补丁,将影响所有 API 版本。

  • 在Docker 1.13中,已被弃用的filter(单数)查询参数,现在已从GET /images/json端点中移除。该参数在使用API版本1.40或更低版本时仍然可用。

  • GET /services 现在返回 CapAddCapDrop 作为 ContainerSpec 的一部分。

  • GET /services/{id} 现在返回 CapAddCapDrop 作为 ContainerSpec 的一部分。

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

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

  • GET /tasks 现在返回 CapAddCapDrop 作为 ContainerSpec 的一部分。

  • GET /tasks/{id} 现在返回 CapAddCapDrop 作为 ContainerSpec 的一部分。

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

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

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

  • POST /services/{id}/update 现在接受 TaskTemplate.Resources.Limits 中的 Pids 来限制最大 PID 数量。

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

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

  • POST /containers/create 现在接受一个格式为 os[/arch[/variant]]platform 查询参数。

    当设置时,守护进程会检查请求的镜像是否存在于本地镜像缓存中,并且具有给定的操作系统和架构,否则返回404状态。

    如果未设置该选项,则使用主机的原生操作系统和架构在镜像缓存中查找镜像。但是,如果没有传递平台并且给定的镜像确实存在于本地镜像缓存中,但其操作系统或架构不匹配,则使用可用的镜像创建容器,并在响应的Warnings字段中添加警告,例如;

    WARNING: The requested image's platform (linux/arm64/v8) does not
             match the detected host platform (linux/amd64) and no
             specific platform was requested
    
  • POST /containers/create 在 Linux 上现在接受 HostConfig.CgroupnsMode 属性。 将该属性设置为 host 以在守护进程的 cgroup 命名空间中创建容器,或 private 以在其自己的私有 cgroup 命名空间中创建容器。每个守护进程的 默认值为 host,可以通过使用 CgroupNamespaceMode 守护进程配置 参数来更改。

  • GET /info 现在返回一个 OSVersion 字段,包含操作系统的版本。此更改未进行版本控制,如果守护程序应用了此补丁,将影响所有API版本。

  • GET /info 不再返回没有设置值的 SystemStatus 字段。此更改未进行版本控制,如果守护程序应用了此补丁,将影响所有 API 版本。

  • GET /services 现在接受查询参数 status。当设置为 true 时, 返回的服务将包括 ServiceStatus,它提供了服务的期望、运行和完成任务计数。

  • GET /services 现在可能包含 ReplicatedJobGlobalJob 作为 ServiceSpec 中的 Mode

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

  • POST /services/create 现在接受 ReplicatedJob 或 GlobalJob作为ModeServiceSpec中。

  • POST /services/{id}/update 接受更新 ServiceSpec.Mode 中的 ReplicatedJob 对象的字段。但是,服务模式仍然无法更改。

  • GET /services 现在包括具有模式 ReplicatedJobGlobalJob 的服务上的 JobStatus

  • GET /services/{id} 现在包括在模式为 ReplicatedJobGlobalJob 的服务上的 JobStatus

  • GET /tasks 现在包括从作业模式服务生成的任务的 JobIteration

  • GET /tasks/{id} 现在包括从作业模式服务生成的任务的 JobIteration

  • GET /containers/{id}/stats 现在接受一个查询参数 (one-shot),当与 stream=false 一起使用时,它会获取一组统计信息,而不是等待两个收集周期以在1秒内获取2个CPU统计信息。

  • HostConfig.Resources 中的 KernelMemory 字段现已弃用。

  • Info 中的 KernelMemory 字段现已弃用。

  • GET /services 现在返回 Ulimits 作为 ContainerSpec 的一部分。

  • GET /services/{id} 现在返回 Ulimits 作为 ContainerSpec 的一部分。

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

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

v1.40 API 变更

Docker Engine API v1.40 文档

  • /_ping 端点现在可以使用 GETHEAD 请求访问。 当使用 HEAD 请求访问时,所有头部信息都会返回,但主体为空(Content-Length: 0)。此更改未进行版本控制,如果守护程序应用了此补丁,则会影响所有 API 版本。建议客户端尝试使用 HEAD,但如果 HEAD 请求失败,则回退到 GET
  • GET /_pingHEAD /_ping 现在设置了 Cache-ControlPragma 头,以防止结果被缓存。此更改未进行版本控制,如果守护程序应用了此补丁,将影响所有 API 版本。
  • GET /services 现在返回 Sysctls 作为 ContainerSpec 的一部分。
  • GET /services/{id} 现在返回 Sysctls 作为 ContainerSpec 的一部分。
  • POST /services/create 现在接受 Sysctls 作为 ContainerSpec 的一部分。
  • POST /services/{id}/update 现在接受 Sysctls 作为 ContainerSpec 的一部分。
  • POST /services/create 现在接受 Config 作为 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/{id}/update 现在接受 Config 作为 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/create 现在在 ContainerSpec.Configs 中包含 Runtime 作为选项
  • POST /services/{id}/update 现在在 ContainerSpec.Configs 中包含 Runtime 作为选项
  • GET /tasks 现在返回 Sysctls 作为 ContainerSpec 的一部分。
  • GET /tasks/{id} 现在返回 Sysctls 作为 ContainerSpec 的一部分。
  • GET /networks 现在支持一个 dangling 过滤器类型。当设置为 true(或 1)时,该端点返回所有未被容器使用的网络。当 设置为 false(或 0)时,仅返回被一个或多个容器使用的网络。
  • GET /nodes 现在支持一种过滤器类型 node.label 过滤器,用于根据节点的标签过滤节点。标签过滤器的格式为 node.label=/node.label== 以返回具有指定标签的节点,或 node.label!=/node.label!== 以返回没有指定标签的节点。
  • 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 的块选项。服务器将响应确认。此选项提高了消息传输的可靠性。此更改未进行版本控制,如果守护程序应用了此补丁,则会影响所有 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/createPOST /services/(id or name)/update 现在接受字段 MaxReplicas 作为服务 Placement 的一部分,允许为服务指定每个节点的最大副本数。
  • POST /containers/create 在 Linux 上现在默认创建一个 HostConfig.IpcMode=private 的容器,如果未明确指定 IpcMode。可以通过使用 DefaultIpcMode 守护进程配置参数将每个守护进程的默认值更改回 shareable
  • POST /containers/{id}/update 现在接受一个 PidsLimit 字段来调整容器的PID限制。设置 0-1 表示无限制。保留 null 以不更改当前值。
  • POST /build 现在在使用 BuildKit 模式时接受 outputs 键来配置构建输出。

V1.39 API 变更

Docker Engine API v1.39 文档

  • GET /info 现在返回一个空字符串,而不是 ,用于 KernelVersionOperatingSystem,如果守护进程无法获取此信息。
  • GET /info 现在返回有关产品许可证的信息,如果许可证已应用于守护进程。
  • GET /info 现在返回一个 Warnings 字段,包含关于缺失功能或与守护进程配置相关问题的警告和信息消息。
  • POST /swarm/init 现在接受一个 DefaultAddrPool 属性来设置全局范围的默认地址池
  • POST /swarm/init 现在接受一个 SubnetSize 属性,通过为每个此类网络提供子网掩码的长度来设置全局范围网络
  • POST /session(在 V1.31 中新增,不再处于实验阶段。 此端点可用于在客户端和守护程序之间运行交互式长时间运行的协议。

V1.38 API 变更

Docker Engine API v1.38 文档

  • GET /tasksGET /tasks/{id} 现在返回一个 NetworkAttachmentSpec 字段, 包含连接到“可附加”群范围网络的非服务容器的 ContainerID

v1.37 API 变更

Docker Engine API v1.37 文档

  • POST /containers/createPOST /services/create 现在支持暴露 SCTP 端口。
  • POST /configs/createPOST /configs/{id}/create 现在接受一个 Templating 驱动。
  • GET /configsGET /configs/{id} 现在返回配置的 Templating 驱动。
  • POST /secrets/createPOST /secrets/{id}/create 现在接受一个 Templating 驱动。
  • GET /secretsGET /secrets/{id} 现在返回机密的 Templating 驱动。

v1.36 API 变更

Docker Engine API v1.36 文档

  • Get /events 现在在 exec 进程终止时返回 exec_die 事件。

v1.35 API 变更

Docker Engine API v1.35 文档

  • POST /services/createPOST /services/(id)/update 现在接受容器规范中的 Isolation 字段,用于设置运行服务的容器的隔离技术(defaultprocesshyperv)。此配置仅用于 Windows 容器。
  • GET /containers/(name)/logs 现在支持一个额外的查询参数:until, 它返回在指定时间戳之前发生的日志行。
  • POST /containers/{id}/exec 现在接受一个 WorkingDir 属性来设置执行进程的工作目录,独立于容器的工作目录。
  • Get /version 现在返回一个 Platform.Name 字段,使用 Moby 作为基础的产品可以利用该字段返回有关平台的信息。
  • Get /version 现在返回一个 Components 字段,该字段可用于返回有关使用的组件的信息。关于引擎本身的信息现在作为一个“组件”版本包含在内,并包含来自顶级 VersionGitCommitAPIVersionMinAPIVersionGoVersionOsArchBuildTimeKernelVersionExperimental 字段的所有信息。今后,Components 部分的信息将优先于其顶级对应部分。

v1.34 API 变更

Docker Engine API v1.34 文档

  • POST /containers/(name)/wait?condition=removed 现在在容器移除失败的情况下也会返回。在响应JSON中添加了一个名为Error的结构指针,以指示失败。如果Errornull,则容器移除成功,否则可以从Error.Message字段中获取指示容器移除失败原因的错误消息。

v1.33 API 变更

Docker Engine API v1.33 文档

  • GET /events 现在支持过滤更多四种类型的事件:config, node, secretservice.

v1.32 API 变更

Docker Engine API v1.32 文档

  • POST /images/create 现在接受一个 platform 参数,形式为 os[/arch[/variant]]
  • POST /containers/create 现在接受 HostConfig.IpcMode 属性的额外值。新的值包括 privateshareablenone
  • DELETE /networks/{id or name} 修复了一个问题,即当name等于另一个网络的名称时,能够掩盖该id。如果存在具有给定name的网络和具有给定id的网络,现在将删除具有给定id的网络。此更改未进行版本控制,如果守护程序应用了此补丁,则会影响所有API版本。

v1.31 API 变更

Docker Engine API v1.31 文档

  • DELETE /secrets/(name) 现在在秘密不存在时返回状态码404而不是500。
  • POST /secrets/create 现在在创建已存在的秘密时返回状态码409而不是500。
  • POST /secrets/create 现在接受一个 Driver 结构体,允许传递 Name 和特定于驱动程序的 Options 来将秘密存储在外部秘密存储中。如果使用默认(内部)秘密存储,则可以省略 Driver 属性。
  • GET /secrets/(id)GET /secrets 现在返回一个 Driver 结构体, 包含用于存储密钥的外部密钥存储的 Name 和特定于驱动程序的 Options。如果未使用外部存储,则省略 Driver 属性。
  • POST /secrets/(name)/update 现在在更新非标签的秘密内容时返回状态码400,而不是500。
  • POST /nodes/(name)/update 现在在降级最后一个节点失败时返回状态码400而不是500。
  • GET /networks/(id or name) 现在接受一个可选的查询参数 scope,该参数将根据范围(localswarmglobal)过滤网络。
  • POST /session 是一个新的端点,可用于在客户端和守护进程之间运行交互式的长时间运行的协议。此端点是实验性的,只有在守护进程启动时启用了实验性功能时才可用。
  • GET /images/(name)/get 现在包含一个 ImageMetadata 字段,该字段包含引擎本地的图像元数据,而不是图像配置的一部分。
  • POST /services/create 现在接受一个 PluginSpecTaskTemplate.Runtime 设置为 plugin
  • GET /events 现在支持配置事件 createupdateremove,这些事件在用户创建、更新或删除配置时触发
  • GET /volumes/GET /volumes/{name} 现在返回一个 CreatedAt 字段, 包含卷创建的日期/时间。如果卷的创建日期/时间未知,则省略此字段。对于范围为“global”的卷, 此字段表示卷的本地实例的创建日期/时间,可能与不同节点上相同卷的实例不同。
  • GET /system/df 现在为 Volumes 返回一个 CreatedAt 字段。有关此字段的描述,请参考 /volumes/ 端点。

v1.30 API 变更

Docker Engine API v1.30 文档

  • GET /info 现在返回支持的日志驱动程序列表,包括插件。
  • GET /infoGET /swarm 现在返回集群范围的 swarm CA 信息,如果节点在 swarm 中:集群根 CA 证书,以及集群 TLS 叶子证书颁发者的主题和公钥。如果规范中提供了所需的 CA 签名证书,它也会显示出来。
  • POST /build/ 现在(当不静默时)会在 JSON 输出流中生成一个 Aux 消息,其有效载荷为 types.BuildResult,用于每个生成的镜像。最后的此类消息将引用构建生成的镜像。
  • GET /nodesGET /nodes/{id} 现在返回关于 swarm TLS 信息的额外信息,如果节点是 swarm 的一部分:受信任的根 CA,以及颁发者的主题和公钥。
  • GET /distribution/(name)/json 是一个新的端点,它返回一个带有 types.DistributionInspect 负载的 JSON 输出流,用于图像名称。它包括一个带有摘要的描述符,以及通过直接联系注册表检索到的支持平台。
  • POST /swarm/update 现在接受3个额外的参数作为swarm规范的CA配置的一部分;swarm所需的CA证书,swarm所需的CA密钥(如果不使用外部证书),以及一个可选参数,用于强制swarm生成并轮换到新的CA证书/密钥对。
  • POST /service/createPOST /services/(id or name)/update 现在接受字段 Platforms 作为服务 Placement 的一部分,允许指定服务支持的平台。
  • POST /containers/(name)/wait 现在接受一个 condition 查询参数,用于指示要等待的状态变化条件。此外,响应头现在会立即返回,以确认服务器已为客户注册了一个等待回调。
  • POST /swarm/init 现在接受一个 DataPathAddr 属性,用于设置用于数据流量的IP地址或网络接口
  • POST /swarm/join 现在接受一个 DataPathAddr 属性,用于设置用于数据流量的IP地址或网络接口
  • GET /events 现在支持服务、节点和密钥事件,这些事件在用户创建、更新和删除服务、节点和密钥时触发
  • GET /events 现在支持网络移除事件,该事件在用户移除一个群组范围的网络时触发
  • GET /events 现在支持一种过滤器类型 scope,其中支持的值可以是 swarm 和 local
  • PUT /containers/(name)/archive 现在接受一个 copyUIDGID 参数,以允许将 UID/GID 映射复制到目标文件或目录。

v1.29 API 变更

Docker Engine API v1.29 文档

  • DELETE /networks/(name) 现在允许移除入口网络,即用于提供路由网格的网络。
  • POST /networks/create 现在支持通过指定一个 Ingress 布尔字段来创建入口网络。目前,这仅在使用了覆盖网络驱动时支持。
  • GET /networks/(name) 现在返回一个 Ingress 字段,显示网络是否为入口网络。
  • GET /networks/ 现在支持一个 scope 过滤器,用于根据网络模式(swarmgloballocal)过滤网络。
  • POST /containers/create, POST /service/createPOST /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=/label== 来移除具有指定标签的对象,或者 label!=/label!== 来移除没有指定标签的对象。
  • POST /services/create 现在接受 Privileges 作为 ContainerSpec 的一部分。当前权限包括 CredentialSpecSELinuxContext

v1.28 API 变更

Docker Engine API v1.28 文档

  • POST /containers/create 现在包含一个 Consistency 字段,用于指定每个 Mount 的一致性级别,可能的值为 default, consistent, cached, 或 delegated
  • GET /containers/create 现在在 HostConfig 中接受一个 DeviceCgroupRules 字段,允许为创建的容器设置自定义的设备 cgroup 规则。
  • 可选的查询参数 verbose 用于 GET /networks/(id or name) 现在将列出所有服务及其所有任务,包括给定网络上的非本地任务。
  • GET /containers/(id or name)/attach/ws 现在对于 API 版本 >= v1.28 返回二进制帧格式的 WebSocket,对于 API 版本 < v1.28 返回文本帧格式的 WebSocket,以实现向后兼容性。
  • GET /networks 仅优化用于返回所有网络的列表和网络特定信息。从该API中移除了连接到特定网络的所有容器列表,仅可通过网络特定的 GET /networks/{network-id} 获取。
  • GET /containers/json 现在支持 publishexpose 过滤器,用于筛选暴露或发布特定端口的容器。
  • POST /services/createPOST /services/(id or name)/update 现在接受 ReadOnly 参数,该参数将容器的根文件系统挂载为只读。
  • POST /build 现在接受 extrahosts 参数,用于指定在构建过程中使用的主机到IP的映射。
  • POST /services/createPOST /services/(id or name)/update 现在接受 rollback 值作为 FailureAction
  • POST /services/createPOST /services/(id or name)/update 现在接受一个可选的 RollbackConfig 对象,该对象指定了回滚选项。
  • GET /services 现在支持一个 mode 过滤器,用于根据服务模式(globalreplicated)过滤服务。
  • POST /containers/(name)/update 现在支持更新 NanoCpus,它表示以10-9 CPUs为单位的CPU配额。
  • POST /plugins/{name}/disable 现在接受一个 force 查询参数,即使插件仍在使用中也可以禁用它。

v1.27 API 变更

Docker Engine API v1.27 文档

  • GET /containers/(id or name)/stats 现在在 precpu_statscpu_stats 中都包含一个 online_cpus 字段。如果该字段为 nil,则为了与旧版本的守护进程兼容,应使用相应的 cpu_usage.percpu_usage 数组的长度。

v1.26 API 变更

Docker Engine API v1.26 文档

  • POST /plugins/(plugin name)/upgrade 升级一个插件。

v1.25 API 变更

Docker Engine API v1.25 文档

  • 现在所有API调用都需要API版本。例如,以前只需请求URL /containers/json,现在必须请求/v1.25/containers/json
  • GET /version 现在返回 MinAPIVersion
  • POST /build 接受 networkmode 参数,用于指定构建期间使用的网络。
  • GET /images/(name)/json 现在返回 OsVersion(如果已填充)
  • GET /images/(name)/json 不再包含 RootFS.BaseLayer 字段。该字段用于使用预安装在主机上的基础镜像的 Windows 镜像(RootFS.Type layers+base),这不再受支持,并且 RootFS.BaseLayer 字段已被移除。
  • GET /info 现在返回 Isolation
  • POST /containers/create 现在在 HostConfig 中接受 AutoRemove 参数,以在容器进程退出时启用守护进程端的自动移除功能。
  • GET /containers/jsonGET /containers/(id or name)/json 现在如果容器正在被移除,则返回 "removing" 作为 State.Status 字段的值。之前,状态返回为 "exited"。
  • GET /containers/json 现在接受 removing 作为 status 过滤器的有效值。
  • GET /containers/json 现在支持通过 health 状态过滤容器。
  • DELETE /volumes/(name) 现在接受一个 force 查询参数,用于强制删除已经被卷驱动插件在外部移除的卷。
  • POST /containers/create/POST /containers/(name)/update 现在验证重启策略。
  • POST /containers/create 现在会验证 NetworkingConfig 中的 IPAMConfig,并对无效的 IPv4 和 IPv6 地址返回错误(在 docker create/run 中的 --ip--ip6)。
  • POST /containers/create 现在在 HostConfig 中接受一个 Mounts 字段,该字段替换了 BindsVolumesTmpfs注意BindsVolumesTmpfs 仍然可用,并且可以与 Mounts 结合使用。
  • POST /build 现在在开始构建之前会对 Dockerfile 进行初步验证,如果语法不正确则返回错误。请注意,此更改是 未版本化的 并适用于所有 API 版本。
  • POST /build 接受 cachefrom 参数,用于指定用于构建缓存的镜像。
  • GET /networks/ 端点现在正确地返回所有网络的列表,而不是在提供尾部斜杠但没有nameid时返回默认网络。
  • DELETE /containers/(name) 端点现在在容器名称处于删除过程中时,返回一个错误 removal of container name is already in progress,状态码为 400。
  • GET /containers/json 现在支持一个 is-task 过滤器,用于过滤作为任务(在swarm模式下作为服务的一部分)的容器。
  • POST /containers/create 现在接受 StopTimeout 字段。
  • POST /services/createPOST /services/(id or name)/update 现在接受 MonitorMaxFailureRatio 参数,这些参数控制服务更新期间对故障的响应。
  • POST /services/(id or name)/update 现在接受 TaskTemplate 内的 ForceUpdate 参数,即使没有通常触发更新的更改,也会强制更新服务。
  • POST /services/createPOST /services/(id or name)/update 现在返回一个 Warnings 数组。
  • GET /networks/(name) 现在返回字段 Created 以显示网络创建时间。
  • POST /containers/(id or name)/exec 现在接受一个 Env 字段,该字段包含要在命令执行上下文中设置的环境变量列表。
  • GET /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头,指定是否启用了实验性功能(值可以是truefalse)。
  • 每个API响应现在都包含一个API-Version头,指定服务器的默认API版本。
  • hostConfig 选项现在接受字段 CpuRealtimePeriodCpuRtRuntime,以便在内核中启用 CONFIG_RT_GROUP_SCHED 时为实时任务分配 CPU 运行时间。
  • GET /info 响应中的 SecurityOptions 字段现在包括 userns,如果守护进程中启用了用户命名空间。
  • GET /nodesGET /node/(id or name) 现在返回 Addr 作为节点 Status 的一部分,这是该节点连接到管理器的地址。
  • HostConfig 字段现在包含 NanoCpus,表示以 10-9 CPU 为单位的 CPU 配额。
  • GET /info 现在返回更多关于安全选项的结构化信息。
  • HostConfig 字段现在包含 CpuCount,表示容器可用的 CPU 数量。仅适用于 Windows 守护进程。
  • POST /services/createPOST /services/(id or name)/update 现在接受 TTY 参数,该参数在容器中分配一个伪终端。
  • POST /services/createPOST /services/(id or name)/update 现在接受 DNSConfig 参数,该参数通过 NameserversSearchOptions 指定解析器配置文件 (resolv.conf) 中的 DNS 相关配置。
  • POST /services/createPOST /services/(id or name)/update 现在支持在服务的 TaskSpec.Placement.Constraints 字段中使用 node.platform.archnode.platform.os 约束。
  • GET /networks/(id or name) 现在包括所有对等节点的IP和名称,适用于Swarm模式的覆盖网络。
  • GET /plugins 列出插件。
  • POST /plugins/pull?name= 拉取一个插件。
  • GET /plugins/(plugin name) 检查一个插件。
  • POST /plugins/(plugin name)/set 配置一个插件。
  • POST /plugins/(plugin name)/enable 启用一个插件。
  • POST /plugins/(plugin name)/disable 禁用一个插件。
  • POST /plugins/(plugin name)/push 推送一个插件。
  • POST /plugins/create?name=(plugin name) 创建一个插件。
  • DELETE /plugins/(plugin name) 删除一个插件。
  • POST /node/(id or name)/update 现在接受 idname 来标识要更新的节点。
  • GET /images/json 现在支持一个 reference 过滤器。
  • GET /secrets 返回有关秘密的信息。
  • POST /secrets/create 创建一个秘密。
  • DELETE /secrets/{id} 删除秘密 id
  • GET /secrets/{id} 返回关于秘密 id 的信息。
  • POST /secrets/{id}/update 更新秘密 id
  • POST /services/(id or name)/update 现在接受服务名称或服务ID的前缀作为参数。
  • POST /containers/create 添加了2个适用于所有日志驱动程序的内置日志选项, mode (blocking|non-blocking), 和 max-buffer-size (例如 2m),这启用了一个非阻塞的日志缓冲区。
  • POST /containers/create 现在接受 HostConfig.Init 字段,用于在容器内运行一个初始化程序,该程序可以转发信号并回收进程。

v1.24 API 变更

Docker 引擎 API v1.24 文档

  • POST /containers/create 现在接受 StorageOpt 字段。
  • GET /info 现在返回 SecurityOptions 字段,显示是否支持 apparmorseccompselinux
  • GET /info 不再返回 ExecutionDriver 属性。该属性在 Docker 1.11 中与 ContainerD 集成后不再使用。
  • GET /networks 现在支持通过 labeldriver 进行过滤。
  • GET /containers/json 现在支持通过 network 名称或 ID 过滤容器。
  • POST /containers/create 现在接受 IOMaximumBandwidthIOMaximumIOps 字段。仅适用于 Windows 守护进程。
  • POST /containers/create 现在如果没有指定命令,会返回一个HTTP 400 "错误参数" 消息(而不是HTTP 500 "服务器错误")
  • GET /images/search 现在接受一个 filters 查询参数。
  • GET /events 现在支持一个 reload 事件,当守护进程配置重新加载时会触发该事件。
  • GET /events 现在支持通过守护进程名称或ID进行过滤。
  • GET /events 现在支持一个 detach 事件,该事件在从容器进程分离时触发。
  • GET /events 现在支持一个 exec_detach 事件,该事件在从 exec 进程分离时触发。
  • GET /images/json 现在支持过滤器 sincebefore
  • POST /containers/(id or name)/start 不再接受 HostConfig
  • POST /images/(name)/tag 不再有 force 查询参数。
  • GET /images/search 现在支持最大返回搜索结果 limit
  • POST /containers/{name:.*}/copy 现在已被移除,并从该API版本开始会报错。
  • API错误现在以JSON格式返回,而不是纯文本。
  • POST /containers/createPOST /containers/(id)/start 允许您配置内核参数(sysctls)以在容器中使用。
  • POST /containers//execPOST /exec//start 不再期望存在 "Container" 字段。此属性未被使用 并且不再由 docker 客户端发送。
  • POST /containers/create/ 现在会验证主机名(应为有效的RFC 1123主机名)。
  • POST /containers/create/ HostConfig.PidMode 字段现在接受 container:,以使容器加入现有容器的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 驱动;cgroupfssystemd
  • GET /info 现在返回 KernelMemory 字段,显示是否支持“内核内存限制”。
  • POST /containers/create 现在接受 PidsLimit 字段,如果内核版本 >= 4.3 并且支持 pids cgroup。
  • GET /containers/(id or name)/stats 现在返回 pids_stats,如果内核版本 >= 4.3 并且支持 pids cgroup。
  • POST /containers/create 现在允许您覆盖用户命名空间重新映射,并为容器使用特权选项。
  • POST /containers/create 现在允许为命名卷指定 nocopy,这将禁用从容器路径到卷的自动复制。
  • POST /auth 现在在注册表支持时返回一个 IdentityToken
  • POST /containers/create 同时指定 HostnameDomainname 字段将导致容器的主机名设置为 Hostname,而不是 Hostname.Domainname
  • GET /volumes 现在支持更多的过滤器,新增的过滤器是 namedriver
  • GET /containers/(id or name)/logs 现在接受一个 details 查询参数,用于流式传输提供给容器的 LogOpts 的额外属性,例如环境变量和标签,与日志一起。
  • POST /images/load 现在返回进度信息作为JSON流,并且有一个quiet查询参数来抑制进度详情。

v1.22 API 变更

  • HostConfig.LxcConf 字段已被移除,不再在 POST /containers/createGET /containers/(id)/json 中可用。
  • POST /container/(name)/update 更新容器的资源。
  • GET /containers/json 在 Windows 上支持过滤器 isolation
  • GET /containers/json 现在返回容器的网络列表。
  • GET /info 现在返回 ArchitectureOSType 字段,提供有关守护程序运行的主机架构和操作系统类型的信息。
  • GET /networks/(name) 现在返回一个 Name 字段,用于连接到网络的每个容器。
  • GET /version 现在返回 BuildTime 字段,格式为 RFC3339Nano,以使其与 API 返回的其他日期/时间值保持一致。
  • AuthConfig 现在支持 registrytoken 用于基于令牌的认证
  • POST /containers/create 现在对 HostConfig.KernelMemory 有一个4M的最小值限制
  • 使用POST /images/(name)/push发起的推送和使用POST /images/create发起的拉取 如果在推送或拉取完成之前关闭了发出API请求的HTTP连接,则将被取消。
  • POST /containers/create 现在允许您为设备设置读写速率限制(以每秒字节数或每秒IO数为单位)。
  • GET /networks 现在支持通过 nameidtype 进行过滤。
  • POST /containers/create 现在允许您为容器设置静态IPv4和/或IPv6地址。
  • POST /networks/(id)/connect 现在允许您为容器设置静态IPv4和/或IPv6地址。
  • GET /info 现在包括正在运行、已停止和已暂停的容器数量。
  • POST /networks/create 现在支持通过设置 Internal 字段来限制网络的外部访问。
  • POST /networks/(id)/disconnect 现在包含一个 Force 选项,用于强制从网络断开容器的连接
  • GET /containers/(id)/json 现在返回容器的 NetworkID
  • POST /networks/create 现在支持在IPAM配置中提供一个选项字段,该字段为自定义IPAM插件提供选项。
  • GET /networks/{network-id} 现在返回自定义IPAM插件的IPAM配置选项(如果有的话)。
  • GET /networks/ 现在返回用户定义网络的子网信息。
  • GET /info 现在可以返回一个 SystemStatus 字段,用于返回有关构建在引擎之上的应用程序的附加信息。

v1.21 API 变更

  • GET /volumes 列出所有卷驱动器的卷。
  • POST /volumes/create 用于创建一个卷。
  • GET /volumes/(name) 获取关于卷的低级信息。
  • DELETE /volumes/(name) 删除指定名称的卷。
  • VolumeDriverconfig 移动到 HostConfig 以使配置可移植。
  • GET /images/(name)/json 现在返回有关镜像的 RepoTagsRepoDigests 的信息。
  • config 选项现在接受字段 StopSignal,该字段指定用于终止容器的信号。
  • GET /containers/(id)/stats 将分别返回每个接口的网络信息。
  • HostConfig 选项现在包含 DnsOptions 字段,用于配置容器的 DNS 选项。
  • POST /build 现在可以选择性地接受一个序列化的构建时变量映射。
  • GET /events 现在除了现有的 time 字段外,还包含一个 timenano 字段。
  • GET /events 现在支持通过镜像和容器标签进行过滤。
  • GET /info 现在列出引擎版本信息并返回 CPUSharesCpuset 的信息。
  • GET /containers/json 将返回容器使用的镜像的 ImageID
  • POST /exec/(name)/start 现在会在容器停止或暂停时返回 HTTP 409。
  • POST /containers/create 现在在 HostConfig 中接受 KernelMemory 来指定内核内存限制。
  • GET /containers/(name)/json 现在接受一个 size 参数。将此参数设置为 '1' 将在 SizeRwSizeRootFs 字段中返回容器大小信息。
  • GET /containers/(name)/json 现在返回一个 NetworkSettings.Networks 字段, 详细说明每个网络的网络设置。此字段弃用了 NetworkSettings.GatewayNetworkSettings.IPAddressNetworkSettings.IPPrefixLenNetworkSettings.MacAddress 字段,这些字段 仍然返回以保持向后兼容性,但将在未来的版本中移除。
  • GET /exec/(id)/json 现在返回一个 NetworkSettings.Networks 字段, 详细说明每个网络的网络设置。此字段弃用了 NetworkSettings.GatewayNetworkSettings.IPAddressNetworkSettings.IPPrefixLenNetworkSettings.MacAddress 字段,这些字段 仍然返回以保持向后兼容性,但将在未来的版本中移除。
  • HostConfig 选项现在包含 OomScoreAdj 字段,用于调整不良启发式算法。该启发式算法选择在内存不足情况下 OOM 杀手终止哪些进程。

v1.20 API 变更

  • GET /containers/(id)/archive 从容器中获取文件系统内容的存档。
  • PUT /containers/(id)/archive 上传一个内容存档,以解压到容器文件系统内的现有目录。
  • POST /containers/(id)/copy 已被弃用,推荐使用上述的 archive 端点,该端点可用于从容器中下载文件和目录。
  • hostConfig 选项现在接受 GroupAdd 字段,该字段指定容器进程将作为其运行的附加组列表。

v1.19 API 变更

  • 当守护进程检测到与客户端的版本不匹配时,通常当客户端比守护进程更新时,现在会返回HTTP 400而不是404。
  • GET /containers/(id)/stats 现在接受 stream 布尔值,以仅获取一组统计信息并断开连接。
  • GET /containers/(id)/logs 现在接受一个 since 时间戳参数。
  • GET /info 字段 Debug, IPv4Forwarding, MemoryLimit, 和 SwapLimit 现在返回为布尔值而不是整数。此外, 端点现在返回新的布尔字段 CpuCfsPeriod, CpuCfsQuota, 和 OomKillDisable
  • hostConfig 选项现在接受字段 CpuPeriodCpuQuota
  • POST /build 接受 cpuperiodcpuquota 选项

v1.18 API 变更

  • GET /version 现在返回 Os, ArchKernelVersion
  • POST /containers/createPOST /containers/(id)/start 允许你设置容器中使用的ulimit设置。
  • GET /info 现在返回 SystemTime, HttpProxy, HttpsProxyNoProxy
  • GET /images/json 添加了一个 RepoDigests 字段以包含镜像摘要信息。
  • POST /build 现在可以为构建创建的所有容器设置资源限制。
  • CgroupParent 可以在主机配置中传递,以在特定的 cgroup 下设置容器 cgroups。
  • POST /build 关闭HTTP请求会取消构建
  • POST /containers/(id)/exec 在响应中包含了 Warnings 字段。