引擎 API 版本历史

v1.51 API 更改

Docker Engine API v1.51 文档

  • GET /images/json 现在将所有镜像的 Containers 字段值设置为使用该镜像的容器数量。此字段之前总是 -1。

v1.50 API 更改

Docker Engine API v1.50 文档

  • GET /info 现在包含一个 DiscoveredDevices 字段。这是一个 DeviceInfo 对象的数组,每个对象提供设备驱动程序发现的设备的详细信息。目前仅支持 CDI 设备驱动程序。
  • DELETE /images/{name} 现在支持 platforms 查询参数。它接受一个 JSON 编码的 OCI Platform 对象数组,允许选择特定的平台来删除内容。
  • 已弃用:GET /info 响应中的 BridgeNfIptablesBridgeNfIp6tables 字段在 API v1.48 中已弃用,现在在 API v1.50 中被省略。
  • 已弃用:GET /images/{name}/json 不再返回以下 Config 字段;HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(未设置时已省略)、MacAddress(未设置时已省略)、StopTimeout(未设置时已省略)。这些额外的字段由于实现细节包含在响应中,但不是镜像配置的一部分。这些字段在 API v1.46 中被标记为已弃用,现在被省略。较旧的 API 版本仍会返回这些字段,但它们始终为空。

v1.49 API 更改

Docker Engine API v1.49 文档

  • GET /images/{name}/json 现在支持 platform 参数(JSON 编码的 OCI Platform 类型),允许指定多平台镜像的平台进行检查。此选项与 manifests 选项互斥。
  • GET /info 现在返回一个 FirewallBackend,其中包含有关守护进程防火墙配置的信息。
  • 已弃用:GET /info 响应中的 RegistryConfig 结构中的 AllowNondistributableArtifactsCIDRsAllowNondistributableArtifactsHostnames 字段在 API v1.49 中被省略。
  • 已弃用:GET /info 端点中的 ContainerdCommit.ExpectedRuncCommit.ExpectedInitCommit.Expected 字段在 API v1.48 中已弃用,现在在 API v1.49 中被省略。

v1.48 API 更改

Docker Engine API v1.48 文档

  • 已弃用:在返回 JSON 进度响应的端点(例如 POST /images/createPOST /images/{name}/pushPOST /build)的流式响应中,"error" 和 "progress" 字段已弃用。这些字段分别在 API v1.4 (docker v0.6.0) 和 API v1.8 (docker v0.7.1) 中标记为已弃用,但仍会返回。这些字段在未来的 API 版本中将留空或被省略。用户应改为使用 errorDetailprogressDetail 字段中的信息。
  • 已弃用:"allow-nondistributable-artifacts" 守护进程配置已弃用并默认启用。GET /info 响应中的 RegistryConfig 结构中的 AllowNondistributableArtifactsCIDRsAllowNondistributableArtifactsHostnames 字段现在将始终为 null,并在 API v1.49 中被省略。
  • 已弃用:GET /info 响应中的 BridgeNfIptablesBridgeNfIp6tables 字段现在始终为 false,并在 API v1.49 中被省略。netfilter 模块现在按需加载,不再在守护进程启动时加载,使得这些字段过时。
  • GET /images/{name}/history 现在支持 platform 参数(JSON 编码的 OCI Platform 类型),允许指定要显示历史的平台。
  • POST /images/{name}/loadGET /images/{name}/get 现在支持 platform 参数(JSON 编码的 OCI Platform 类型),允许指定要加载/保存的平台。不传递此参数将导致加载/保存完整的多平台镜像。
  • POST /containers/create 现在在设置容器范围的 Config.VolumeDriver 选项与通过 Mounts 定义的卷结合使用时,会在响应中包含警告,因为 VolumeDriver 选项对这些卷无效。此警告以前由 CLI 生成,现在已移至守护进程,以便其他客户端也可以获取此警告。
  • POST /containers/create 现在支持 image 类型的 Mount,用于在容器内部挂载镜像。
  • 已弃用:GET /info 端点中的 ContainerdCommit.ExpectedRuncCommit.ExpectedInitCommit.Expected 字段已弃用,并将在 API v1.49 中省略。
  • HostConfig (顶级 --sysctl 设置) 中用于 eth0Sysctls 不再迁移到 DriverOpts,如 v1.46 更改中所述。
  • GET /images/jsonGET /images/{name}/json 响应现在包含 Descriptor 字段,其中包含镜像目标的 OCI 描述符。新字段仅在守护进程提供多平台镜像存储时填充。警告:这是实验性的,可能随时更改,不保证向后兼容性。
  • GET /images/{name}/json 响应现在将返回 Manifests 字段,其中包含镜像索引中包含的子清单的信息。这包括平台特定的清单和构建证明等。新字段仅在请求也将 manifests 查询参数设置为 true 时填充。这与 GET /images/json 端点中的行为相同。警告:这是实验性的,可能随时更改,不保证向后兼容性。
  • GET /containers/{name}/json 现在返回一个 ImageManifestDescriptor 字段,其中包含用于创建容器的镜像的平台特定镜像清单的 OCI 描述符。此字段仅在守护进程提供多平台镜像存储时填充。
  • POST /networks/create 现在有一个 EnableIPv4 字段。将其设置为 false 将禁用网络的 IPv4 IPAM。仅当守护进程启用了实验性功能时,才能将其设置为 false
  • GET /networks/{id} 现在返回一个 EnableIPv4 字段,显示网络是否启用了 IPv4 IPAM。
  • POST /networks/{id}/connectPOST /containers/create 现在在 EndpointsConfig 中接受 GwPriority 字段。此值用于确定哪个网络端点为容器提供默认网关。选择优先级最高的端点。如果多个端点具有相同的优先级,则端点按其网络名称按字典顺序排序,并选择排序最靠前的端点。
  • GET /containers/json 现在在每个网络端点的 NetworkSettings 中返回一个 GwPriority 字段。
  • API 调试端点(GET /debug/varsGET /debug/pprof/GET /debug/pprof/cmdlineGET /debug/pprof/profileGET /debug/pprof/symbolGET /debug/pprof/traceGET /debug/pprof/{name})现在也可以通过带版本号的 API 路径 (/v<API-version>/<endpoint>) 访问。
  • POST /build/prunekeep-bytes 重命名为 reserved-space,现在支持额外的修剪参数 max-used-spacemin-free-space
  • GET /containers/json 现在返回一个与 /containers/{name}/json 中相同字段的 ImageManifestDescriptor 字段。此字段仅在守护进程提供多平台镜像存储时填充。

v1.47 API 更改

Docker Engine API v1.47 文档

  • GET /images/json 响应现在包含 Manifests 字段,其中包含镜像索引中包含的子清单的信息。这包括平台特定的清单和构建证明等。新字段仅在请求也将 manifests 查询参数设置为 true 时填充。警告:这是实验性的,可能随时更改,不保证向后兼容性。
  • 当守护进程启动时禁用 bridge-nf-call-iptablesbridge-nf-call-ip6tables 时,GET /info 不再包含警告。现在在需要时尝试加载 br_netfilter 模块,使得这些警告不准确。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。

v1.46 API 更改

Docker Engine API v1.46 文档

  • GET /info 现在包含一个 Containerd 字段,其中包含有关 containerd API 套接字位置和守护进程用于运行容器和插件的 containerd 命名空间的信息。
  • POST /containers/create 字段 NetworkingConfig.EndpointsConfig.DriverOpts,和 POST /networks/{id}/connect 字段 EndpointsConfig.DriverOpts,现在支持标签 com.docker.network.endpoint.sysctls 用于设置每个接口的 sysctls。该值为 sysctl 赋值的逗号分隔列表,接口名称必须是 "IFNAME"。例如,要设置 net.ipv4.config.eth0.log_martians=1,请使用 net.ipv4.config.IFNAME.log_martians=1。在 API 版本 1.46 之前,eth0 的顶级 --sysctl 设置在可能的情况下将迁移到 DriverOpts。此自动迁移将在未来版本中移除。
  • GET /containers/json 现在返回容器的注释。
  • POST /images/{name}/push 现在支持 platform 参数(JSON 编码的 OCI Platform 类型),允许从多平台镜像中选择特定的平台清单。
  • POST /containers/create 现在将 Options 作为 HostConfig.Mounts.TmpfsOptions 的一部分,以设置 tmpfs 挂载的选项。
  • POST /services/create 现在将 Options 作为 ContainerSpec.Mounts.TmpfsOptions 的一部分,以设置 tmpfs 挂载的选项。
  • GET /events 现在支持镜像 create 事件,该事件在构建新镜像时发出,无论是否已标记。

GET /images/{name}/json 响应中已弃用的配置字段

此端点(用于“镜像检查”)返回的 Config 字段包含额外的字段,这些字段不是镜像配置的一部分,也不是 Docker 镜像规范OCI 镜像规范 的一部分。

由于实现细节,这些额外的字段包含在响应中,其中用于响应的 api/types.ImageInspec 类型使用的是 container.Config 类型。

container.Config 类型是镜像配置的超集,虽然镜像的 Config 用作从镜像创建的容器的“模板”,但额外的字段是在运行时设置的(从创建容器时传递的选项),而不是从镜像 Config 中获取。

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

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

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

v1.45 API 更改

Docker Engine API v1.45 文档

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

v1.44 API 更改

Docker Engine API v1.44 文档

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

v1.43 API 更改

Docker Engine API v1.43 文档

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

v1.42 API 更改

Docker Engine API v1.42 文档

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

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

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

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

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

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

  • 如果提供了无效的 conditionPOST /containers/{id}/wait 端点现在返回 400 状态码(在 API 1.30 及更高版本上)。

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

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

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

  • GET /_pingHEAD /_ping 现在默认返回 Builder-Version。此标头包含要使用的默认构建器,并且是守护进程推荐的。但是,由客户端选择使用哪个构建器。

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

    此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。

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

    Swarm 标头可以包含以下值之一

    • "不活动"
    • "待定"
    • "错误"
    • "已锁定"
    • "活动/工作节点"
    • "活动/管理节点"
  • POST /containers/create 对于 Windows 容器现在在 HostConfig.Resources.Devices.PathOnHost 中接受新的语法。除了现有的 class/<GUID> 语法,现在也识别 <IDType>://<ID>。对特定 <IDType> 值的支持取决于底层实现和 Windows 版本。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。

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

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

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

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

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

  • Volume 类型,由 Added new ClusterVolume` 字段返回。

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

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

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

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

  • POST /containers/create 允许为缺少的主机路径设置 CreateMountpoint。这与 Binds 保持一致。

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

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

  • POST /volumes/prune 现在默认仅修剪“匿名”卷(未命名的卷)。可以将新的过滤参数 all 设置为 truth-y 值(true1)以获得旧行为。

v1.41 API 更改

Docker Engine API v1.41 文档

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

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

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

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

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

  • filter(单数)查询参数已从 GET /images/json 端点中删除,该参数在 Docker 1.13 中已弃用,取而代之的是 filters 选项。使用 API 版本 1.40 或更低版本时,该参数仍然可用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    WARNING: The requested image's platform (linux/arm64/v8) does not
             match the detected host platform (linux/amd64) and no
             specific platform was requested
    
  • POST /containers/create 在 Linux 上现在默认使用 HostConfig.CgroupnsMode=private 创建容器,如果未明确指定 IpcMode。可以通过使用 CgroupNamespaceMode 守护进程配置参数将每个守护进程的默认值更改回 shareable

  • GET /info 现在返回一个 OSVersion 字段,其中包含操作系统的版本。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。

  • 如果 SystemStatus 字段没有值,GET /info 将不再返回该字段。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。

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

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

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

  • POST /services/create 现在接受 ReplicatedJobGlobalJob 作为 ServiceSpec 中的 Mode

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

  • GET /services 现在包含 ReplicatedJobGlobalJob 模式服务的 JobStatus

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

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

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

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

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

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

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

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

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

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

v1.40 API 更改

Docker Engine API v1.40 文档

  • /_ping 端点现在可以使用 GETHEAD 请求访问。当使用 HEAD 请求访问时,所有头都返回,但正文为空 (Content-Length: 0)。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。建议客户端尝试使用 HEAD,但如果 HEAD 请求失败,则回退到 GET
  • GET /_pingHEAD /_ping 现在设置 Cache-ControlPragma 标头以防止结果被缓存。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。
  • GET /services 现在将 Sysctls 作为 ContainerSpec 的一部分返回。
  • GET /services/{id} 现在将 Sysctls 作为 ContainerSpec 的一部分返回。
  • POST /services/create 现在接受 Sysctls 作为 ContainerSpec 的一部分。
  • POST /services/{id}/update 现在接受 Sysctls 作为 ContainerSpec 的一部分。
  • POST /services/create 现在接受 Config 作为 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/{id}/update 现在接受 Config 作为 ContainerSpec.Privileges.CredentialSpec 的一部分。
  • POST /services/create 现在包含 Runtime 作为 ContainerSpec.Configs 中的一个选项。
  • POST /services/{id}/update 现在包含 Runtime 作为 ContainerSpec.Configs 中的一个选项。
  • GET /tasks 现在将 Sysctls 作为 ContainerSpec 的一部分返回。
  • GET /tasks/{id} 现在将 Sysctls 作为 ContainerSpec 的一部分返回。
  • GET /networks 现在支持 dangling 过滤器类型。当设置为 true(或 1)时,端点返回所有未被容器使用的网络。当设置为 false(或 0)时,只返回被一个或多个容器使用的网络。
  • GET /nodes 现在支持 node.label 过滤器类型,用于根据 node.label 过滤节点。标签过滤器的格式为 node.label=<key>/node.label=<key>=<value> 返回具有指定标签的节点,或 node.label!=<key>/node.label!=<key>=<value> 返回不具有指定标签的节点。
  • POST /containers/create 在使用 Fluentd 日志驱动程序时,现在接受 HostConfig.LogConfig.Config 中的 fluentd-async 选项。此选项弃用了 fluentd-async-connect 选项,该选项仍然有效,但将在未来版本中移除。建议用户今后使用 fluentd-async 选项。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。
  • POST /containers/create 在使用 Fluentd 日志驱动程序时,现在接受 HostConfig.LogConfig.Config 中的 fluentd-request-ack 选项。如果启用,Fluentd 日志驱动程序会发送带有唯一 ID 的 chunk 选项。服务器将响应确认。此选项提高了消息传输的可靠性。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。
  • POST /containers/createGET /containers/{id}/jsonGET /containers/json 现在支持 BindOptions.NonRecursive
  • POST /swarm/init 现在接受 DataPathPort 属性来设置数据路径端口号。
  • GET /info 现在返回关于当前在 swarm 中使用的 DataPathPort 的信息。
  • GET /info 现在返回 PidsLimit 布尔值,指示主机内核是否启用了 PID 限制支持。
  • 当守护进程在无根模式下运行时,GET /info 现在在 SecurityOptions 中包含 name=rootless。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。
  • 当守护进程在无根模式下运行时,GET /info 现在返回 none 作为 CgroupDriver。此更改未版本化,如果守护进程具有此补丁,则会影响所有 API 版本。
  • POST /containers/create 现在接受 DeviceRequests 作为 HostConfig 的一部分。可用于设置 Nvidia GPU。
  • GET /swarm 端点现在返回 DataPathPort 信息。
  • POST /containers/create 现在接受 KernelMemoryTCP 字段,用于设置内核 TCP 缓冲区内存的硬限制。
  • GET /service 现在返回 MaxReplicas 作为 Placement 的一部分。
  • GET /service/{id} 现在返回 MaxReplicas 作为 Placement 的一部分。
  • POST /service/createPOST /services/(id or name)/update 现在接受 MaxReplicas 字段作为服务 Placement 的一部分,允许指定服务的每个节点最大副本数。
  • 在 Linux 上,POST /containers/create 现在默认使用 HostConfig.IpcMode=private 创建容器,如果未明确指定 IpcMode。可以通过使用 DefaultIpcMode 守护进程配置参数将每个守护进程的默认值更改回 shareable
  • POST /containers/{id}/update 现在接受 PidsLimit 字段以调整容器的 PID 限制。设置为 0-1 表示无限制。留空 null 表示不更改当前值。
  • POST /build 现在接受 outputs 键,用于在使用 BuildKit 模式时配置构建输出。

V1.39 API 更改

Docker Engine API v1.39 文档

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

V1.38 API 更改

Docker Engine API v1.38 文档

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

v1.37 API 更改

Docker Engine API v1.37 文档

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

v1.36 API 更改

Docker Engine API v1.36 文档

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

v1.35 API 更改

Docker Engine API v1.35 文档

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

v1.34 API 更改

Docker Engine API v1.34 文档

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

v1.33 API 更改

Docker Engine API v1.33 文档

  • GET /events 现在支持过滤 4 种更多类型的事件:confignodesecretservice

v1.32 API 更改

Docker Engine API v1.32 文档

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

v1.31 API 更改

Docker Engine API v1.31 文档

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

v1.30 API 更改

Docker Engine API v1.30 文档

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

v1.29 API 更改

Docker Engine API v1.29 文档

  • DELETE /networks/(name) 现在允许移除入口网络,即用于提供路由网格的网络。
  • POST /networks/create 现在支持创建入口网络,通过指定一个 Ingress 布尔字段。目前,这仅在使用覆盖网络驱动程序时支持。
  • GET /networks/(name) 现在返回一个 Ingress 字段,显示网络是否是入口网络。
  • GET /networks/ 现在支持 scope 过滤器,用于根据网络模式(swarmgloballocal)过滤网络。
  • POST /containers/createPOST /service/createPOST /services/(id or name)/update 现在接受 StartPeriod 字段作为 HealthConfig 的一部分,允许指定一个周期,在此期间容器即使健康检查不通过也不应被视为不健康。
  • GET /services/(id) 现在接受一个 insertDefaults 查询参数,用于将默认值合并到服务检查输出中。
  • POST /containers/prunePOST /images/prunePOST /volumes/prunePOST /networks/prune 现在支持 label 过滤器,用于根据标签过滤容器、镜像、卷或网络。标签过滤器的格式可以是 label=<key>/label=<key>=<value> 以删除具有指定标签的那些,或者 label!=<key>/label!=<key>=<value> 以删除不具有指定标签的那些。
  • POST /services/create 现在接受 Privileges 作为 ContainerSpec 的一部分。Privileges 目前包括 CredentialSpecSELinuxContext

v1.28 API 更改

Docker Engine API v1.28 文档

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

v1.27 API 更改

Docker Engine API v1.27 文档

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

v1.26 API 更改

Docker Engine API v1.26 文档

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

v1.25 API 更改

Docker Engine API v1.25 文档

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

v1.24 API 更改

Docker Engine API v1.24 文档

  • POST /containers/create 现在接受 StorageOpt 字段。
  • GET /info 现在返回 SecurityOptions 字段,显示是否支持 apparmorseccompselinux
  • GET /info 不再返回 ExecutionDriver 属性。在 Docker 1.11 中与 ContainerD 集成后,此属性不再使用。
  • GET /networks 现在支持按 labeldriver 过滤。
  • GET /containers/json 现在支持按 network 名称或 ID 过滤容器。
  • POST /containers/create 现在接受 IOMaximumBandwidthIOMaximumIOps 字段。仅限 Windows 守护程序。
  • 如果未指定命令,POST /containers/create 现在返回 HTTP 400“bad parameter”消息(而不是 HTTP 500“server error”)。
  • GET /images/search 现在接受 filters 查询参数。
  • GET /events 现在支持 reload 事件,该事件在守护程序配置重新加载时发出。
  • GET /events 现在支持按守护程序名称或 ID 过滤。
  • GET /events 现在支持 detach 事件,该事件在从容器进程分离时发出。
  • GET /events 现在支持 exec_detach 事件,该事件在从执行进程分离时发出。
  • GET /images/json 现在支持 sincebefore 过滤器。
  • POST /containers/(id or name)/start 不再接受 HostConfig
  • POST /images/(name)/tag 不再有 force 查询参数。
  • GET /images/search 现在支持最大返回搜索结果 limit
  • POST /containers/{name:.*}/copy 已被移除,并从当前 API 版本开始报错。
  • API 错误现在以 JSON 格式返回,而不是纯文本。
  • POST /containers/createPOST /containers/(id)/start 允许您配置容器中使用的内核参数 (sysctls)。
  • POST /containers/<container ID>/execPOST /exec/<exec ID>/start 不再期望存在“Container”字段。此属性未使用,docker 客户端也不再发送。
  • POST /containers/create/ 现在验证主机名(应为有效的 RFC 1123 主机名)。
  • POST /containers/create/ HostConfig.PidMode 字段现在接受 container:<name|id>,以便容器加入现有容器的 PID 命名空间。

v1.23 API 更改

  • GET /containers/json 返回容器的状态,包括 createdrestartingrunningpausedexiteddead 之一。
  • GET /containers/json 返回容器的挂载点。
  • GET /networks/(name) 现在返回一个 Internal 字段,显示网络是否为内部网络。
  • GET /networks/(name) 现在返回一个 EnableIPv6 字段,显示网络是否启用了 IPv6。
  • POST /containers/(name)/update 现在支持更新容器的重启策略。
  • POST /networks/create 现在支持通过设置 EnableIPv6 字段来在网络上启用 IPv6(使用标签将不再起作用)。
  • GET /info 现在返回 CgroupDriver 字段,显示守护程序正在使用的 cgroup 驱动程序;cgroupfssystemd
  • GET /info 现在返回 KernelMemory 字段,显示是否支持“内核内存限制”。
  • 如果内核版本 >= 4.3 且支持 pids cgroup,则 POST /containers/create 现在接受 PidsLimit 字段。
  • 如果内核版本 >= 4.3 且支持 pids cgroup,则 GET /containers/(id or name)/stats 现在返回 pids_stats
  • POST /containers/create 现在允许您覆盖用户名空间重新映射并使用容器的特权选项。
  • POST /containers/create 现在允许为命名卷指定 nocopy,这会禁用从容器路径到卷的自动复制。
  • 当注册表支持时,POST /auth 现在返回 IdentityToken
  • POST /containers/create 如果同时指定了 HostnameDomainname 字段,则容器的主机名将设置为 Hostname,而不是 Hostname.Domainname
  • GET /volumes 现在支持更多过滤器,新增的过滤器是 namedriver
  • GET /containers/(id or name)/logs 现在接受 details 查询参数,用于将提供给容器 LogOpts 的额外属性(例如环境变量和标签)与日志一起流式传输。
  • POST /images/load 现在以 JSON 流形式返回进度信息,并带有一个 quiet 查询参数来抑制进度详细信息。

v1.22 API 更改

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

v1.21 API 更改

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

v1.20 API 更改

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

v1.19 API 更改

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

v1.18 API 更改

  • GET /version 现在返回 OsArchKernelVersion
  • POST /containers/createPOST /containers/(id)/start 允许您设置容器中使用的 ulimit 设置。
  • GET /info 现在返回 SystemTimeHttpProxyHttpsProxyNoProxy
  • GET /images/json 添加了一个 RepoDigests 字段以包含镜像摘要信息。
  • POST /build 现在可以为为构建创建的所有容器设置资源约束。
  • CgroupParent 可以在主机配置中传递,以在特定 cgroup 下设置容器 cgroup。
  • POST /build 关闭 HTTP 请求会取消构建。
  • POST /containers/(id)/exec 在响应中包含 Warnings 字段。
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.