引擎 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 字段,其中包含有关容器 API 套接字的位置以及守护进程用于运行容器和插件的容器命名空间的信息。
  • 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。在 1.46 及之前的 API 版本中,eth0 的顶层 --sysctl 设置将在可能的情况下迁移至 DriverOpts。 此自动迁移将在未来的版本中移除。
  • GET /containers/json 现在返回容器的注释。
  • POST /images/{name}/push 现在支持一个 platform 参数(JSON 编码的 OCI 平台类型),允许从多平台镜像中选择特定的平台清单。
  • POST /containers/create 现在接受 Options 作为 HostConfig.Mounts.TmpfsOptions 的一部分,用于设置 tmpfs 挂载的选项。
  • POST /services/create 现在作为 ContainerSpec.Mounts.TmpfsOptions 的一部分使用 Options,用于设置 tmpfs 挂载的选项。
  • GET /events 现在支持镜像 create 事件,该事件在构建新镜像时发出,无论是否已标记。

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

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

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

container.Config 类型是镜像配置的超集,虽然镜像的 Config 被用作从该镜像创建的容器的模板,但额外字段是在运行时设置的(来自创建容器时传递的选项),而不是取自镜像的 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 将总是为 false 字段假定一个 is-automated 值。因此,搜索 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 引擎 API v1.44 文档

  • GET /images/json 现在接受一个 until 过滤器。它接受一个时间戳并列出所有在此之前创建的镜像。<timestamp> 可以是 Unix 时间戳、格式化的日期时间戳或 Go 持续时间字符串(例如 10m1h30m),根据守护进程主机的时间进行相对计算。此更改未进行版本控制,如果守护进程应用了此补丁,则会影响所有 API 版本。
  • VirtualSizeGET /images/{name}/jsonGET /images/json 响应中的 GET /system/df 字段现已省略。请改用 Size 字段,其中包含相同的信息。
  • 已弃用:is_automated 响应中的 GET /images/search 字段已被弃用,将来将始终设置为 false,因为 Docker Hub 正在弃用其搜索 API 中的 is_automated 字段。该弃用不分版本,适用于所有 API 版本。
  • 已弃用:is-automated 过滤器用于 GET /images/search 端点。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 规范目录。使用该应用设置需要守护进程启用实验性功能,对于非实验性守护进程,始终返回空列表。
  • 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 现在接受 SeccompAppArmor 字段在 ContainerSpec.Privileges 对象中。这允许 在 Swarm 服务中进行一些 Seccomp 和 AppArmor 配置。
  • POST /containers/create 上的 NetworkSettings.EndpointSettings 中添加了一个新的端点特定 MacAddress 字段,在 POST /networks/{id}/connect 上的 EndpointConfig 中也添加了该字段。 POST /containers/createConfig 中的容器范围 MacAddress 字段现已弃用。
  • POST /services/createPOST /services/{id}/update 请求中的字段 Networks 现已弃用。您应该改用字段 TaskTemplate.Networks
  • GET /images/{name}/json 响应中的 ContainerContainerConfig 字段已弃用,将不再包含在 API v1.45 中。
  • GET /info 现在包含 status 个属性,位于 Runtimes 中。
  • 一个名为 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 中可用的字段 HairpinModeLinkLocalIPv6AddressLinkLocalIPv6PrefixLenSecondaryIPAddressesSecondaryIPv6Addresses 已弃用,并将在未来的版本中移除。您应该在 NetworkSettings.Networks 中查找默认网络。
  • GET /images/{id}/json 如果镜像配置中缺少 Created 字段,则省略 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 现在包含 no-new-privilegesSecurityOptions 字符串列表中,当此选项全局启用时。此更改未版本化,如果守护进程具有此补丁,则影响所有 API 版本。

v1.42 API 变更

Docker 引擎 API v1.42 文档

  • 移除了 BuilderSize 端点上的 GET /system/df 字段。该字段 在 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)。此更改未进行版本控制,如果守护进程 (daemon) 包含此补丁,则会影响所有 API 版本。

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

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

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

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

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

  • GET /_pingHEAD /_ping 现在默认返回 Builder-Version。 此标头包含要使用的默认构建器,是由守护进程通告的建议。然而,选择使用哪个构建器取决于客户端。

    Linux 上的默认值是版本 “2”,但守护进程可以配置为推荐版本 “1”。Windows 尚不支持原生 Windows 镜像的 BuildKit,并使用 “1” 作为默认值。

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

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

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

    • "不活跃"
    • "等待中"
    • "错误"
    • "已锁定"
    • "active/worker"
    • "活跃/管理者"
  • 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}/logsGET /tasks/{id}/logs 现在设置 Content-Type 头为 application/vnd.docker.multiplexed-stream,当多路复用的 stdout/stderr 流被发送到客户端时,否则为 application/vnd.docker.raw-stream

  • POST /volumes/create 现在接受一个新的 ClusterVolumeSpec 来创建集群卷 (CNI)。此选项仅在守护进程是 Swarm 管理器时才能使用。创建时的卷响应现在也可以包含一个 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 的一致性

  • 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 中被弃用并以 filters 选项取代的 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 现在返回 PidsTaskTemplate.Resources.Limits 中。

  • GET /services/{id} 现在返回 PidsTaskTemplate.Resources.Limits 中。

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

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

  • GET /tasks 现在返回 PidsTaskTemplate.Resources.Limits 中。

  • GET /tasks/{id} 现在返回 PidsTaskTemplate.Resources.Limits 中。

  • 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 现在可以在 ServiceSpec 中包含 ReplicatedJobGlobalJob 作为 Mode

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

  • POST /services/create 现在接受 ReplicatedJob or GlobalJobas theModein theServiceSpec。

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

  • GET /services 现在包含 JobStatus 在服务上,模式为 ReplicatedJobGlobalJob

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

  • 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 文档

  • 现在可以使用 GETHEAD 请求访问 /_ping 端点。 当使用 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-async 选项,位于 HostConfig.LogConfig.Config 中 当使用 Fluentd 日志驱动程序时。此选项废弃了 fluentd-async-connect 选项,该选项仍然有效,但将在未来的版本中移除。鼓励用户 在后续使用 fluentd-async 选项。此更改 未进行版本控制,如果守护程序具有此补丁,则影响所有 API 版本。
  • POST /containers/create 现在接受 fluentd-request-ack 选项在 HostConfig.LogConfig.Config 中,当使用 Fluentd 日志驱动时。如果启用, Fluentd 日志驱动会发送带有唯一 ID 的块选项。服务器 将响应确认。此选项提高了 消息传输的可靠性。此更改未进行版本控制,如果守护进程具有此补丁,则影响所有 API 版本。
  • POST /containers/create, GET /containers/{id}/json, and GET /containers/json 现在支持 BindOptions.NonRecursive
  • POST /swarm/init 现在接受一个 DataPathPort 属性来设置数据路径端口号。
  • GET /info 现在返回有关当前在 swarm 中使用的 DataPathPort 的信息
  • GET /info 现在返回 PidsLimit 布尔值,以指示宿主机内核是否启用了 PID 限制支持。
  • GET /info 现在包含 name=rootlessSecurityOptions 中,当守护进程以无根模式运行时。此更改未进行版本控制,如果守护进程具有此补丁,则会影响所有 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 现在接受 outputs 密钥,用于在使用 BuildKit 模式时配置构建输出。

V1.39 API 变更

Docker Engine API v1.39 文档

  • GET /info 现在返回一个空字符串,而不是 <unknown> 对于 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 属性来为 exec 进程设置工作目录,独立于容器的工作目录。
  • Get /version 现在返回一个 Platform.Name 字段,使用 Moby 作为基础的产品可以利用该字段返回平台信息。
  • Get /version 现在返回一个 Components 字段,可用于返回有关所用组件的信息。有关引擎本身的信息现在作为“Component”版本包含在内,并包含来自顶层 VersionGitCommitAPIVersionMinAPIVersionGoVersionOsArchBuildTimeKernelVersionExperimental 字段的所有信息。今后,Components 部分中的信息优先于其对应的顶层字段。

v1.34 API 变更

Docker Engine API v1.34 文档

  • POST /containers/(name)/wait?condition=removed 现在也会在容器移除失败的情况下返回。一个指向名为 Error 的结构的指针被添加到响应 JSON 中,以指示失败。 如果 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 现在接受 platform 参数,格式为 os[/arch[/variant]]
  • POST /containers/create 现在接受 HostConfig.IpcMode 属性的额外值。新值是 privateshareablenone
  • DELETE /networks/{id or name} 修复了当 name 等于另一个网络的名称时,能够掩盖该 id 的问题。如果同时存在给定名称的网络和给定ID的网络,现在将删除给定ID的网络。此更改未进行版本控制,如果守护进程(daemon)包含此补丁,将影响所有 API 版本。

v1.31 API 变更

Docker Engine API v1.31 文档

  • DELETE /secrets/(name) 当 secret 不存在时,现在返回状态码 404 而不是 500。
  • POST /secrets/create 现在在创建已存在的 secret 时返回状态码 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 集群中,则返回集群范围的 swarm CA 信息:集群根 CA 证书,以及集群 TLS 叶证书颁发者的主题和公钥。如果规范中提供了所需的 CA 签名证书,它也会显示该证书。
  • POST /build/ 现在(当非静默时)会在 JSON 输出流中为生成的每个镜像生成一条带有负载 types.BuildResultAux 消息。最后一条此类消息将引用构建生成的镜像。
  • GET /nodesGET /nodes/{id} 现在如果节点是 swarm 的一部分,会返回关于 swarm TLS 信息的额外信息:受信任的根 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 现在支持网络移除事件,该事件在用户移除 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 布尔字段来创建入口网络。目前,仅在使用 overlay 网络驱动程序时支持此功能。
  • GET /networks/(name) 现在返回一个 Ingress 字段,显示该网络是否为入口网络。
  • GET /networks/ 现在支持 scope 过滤器,以根据网络模式(swarmgloballocal)过滤网络。
  • 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 的一部分。权限目前包括 CredentialSpecSELinuxContext

v1.28 API 变更

Docker Engine API v1.28 文档

  • POST /containers/create 现在包含一个 Consistency 字段,用于指定每个 Mount 的一致性级别,可能的值包括 defaultconsistentcacheddelegated
  • GET /containers/create 现在接受 DeviceCgroupRules 字段在 HostConfig 中,允许为创建的容器设置自定义设备 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 现在接受 rollback 值用于 FailureAction
  • POST /services/createPOST /services/(id or name)/update 现在接受一个可选的 RollbackConfig 对象,该对象指定回滚选项。
  • GET /services 现在支持 mode 过滤器,以根据服务模式(globalreplicated)过滤服务。
  • POST /containers/(name)/update 现在支持更新 NanoCpus,该值表示以 10-9 个 CPU 为单位的 CPU 配额。
  • POST /plugins/{name}/disable 现在接受 force 查询参数,以禁用插件,即使该插件仍在使用中。

v1.27 API 变更

Docker Engine API v1.27 文档

  • GET /containers/(id or name)/stats 现在在 online_cpuscpu_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), and POST /volumes/create 现在返回 Options 字段,该字段包含创建卷时要使用的驱动程序特定选项。
  • GET /exec/(id)/json 现在返回 Pid,这是被 exec 执行进程的系统 pid。
  • POST /containers/prune 已清理停止的容器。
  • POST /images/prune 清理未使用的镜像。
  • POST /volumes/prune 清理未使用的卷。
  • POST /networks/prune 清理未使用的网络。
  • 每个 API 响应现在都包含一个 Docker-Experimental 标头,用于指定是否启用了实验性功能(值可以是 truefalse)。
  • 每个 API 响应现在都包含一个指定服务器默认 API 版本的 API-Version 标头。
  • 当内核中启用 CONFIG_RT_GROUP_SCHED 时,hostConfig 选项现在接受 CpuRealtimePeriodCpuRtRuntime 字段,以便为实时任务分配 CPU 运行时间。
  • 如果守护进程中启用了用户命名空间,那么 GET /info 响应中的 SecurityOptions 字段现在将包含 userns
  • GET /nodesGET /node/(id or name) 现在作为节点 Status 的一部分返回 Addr,该地址是该节点连接到管理器的地址。
  • HostConfig 字段现在包含 NanoCpus,它表示 CPU 配额,单位为 10-9 个 CPU。
  • 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 现在支持 node.platform.archnode.platform.os 约束在服务 TaskSpec.Placement.Constraints 字段中。
  • GET /networks/(id or name) 现在包含了 swarm 模式覆盖网络的所有对等节点的 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 返回有关 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 个内置的 log-opts,适用于所有日志驱动程序, mode (blocking|non-blocking),以及 max-buffer-size (例如 2m),这启用了非阻塞日志缓冲区。
  • POST /containers/create 现在接受 HostConfig.Init 个字段,以便在容器内运行一个转发信号并回收进程的 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 "参数错误" 消息 如果未指定命令(而不是 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 允许您配置内核参数 以便在容器中使用。
  • 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 字段,显示是否支持“内核内存限制”。
  • 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,而不是 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 的最小值限制
  • 使用 POST /images/(name)/push 发起的推送和使用 POST /images/create 发起的拉取,如果在推送或拉取完成之前发起 API 请求的 HTTP 连接关闭,则会被取消。
  • POST /containers/create 现在允许您为设备设置读/写速率限制(以每秒字节数或每秒 I/O 操作数为单位)。
  • 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/<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 现在包含一个 timenano 字段,除了现有的 time 字段。
  • 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 字段,用于调整 badness 启发式算法。该启发式算法用于选择在内存不足情况下 OOM killer 终止哪些进程。

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/create and POST /containers/(id)/start允许您设置容器中使用的 ulimit 设置。
  • GET /info 现在返回 SystemTimeHttpProxyHttpsProxyNoProxy
  • GET /images/json 添加了一个 RepoDigests 字段以包含镜像摘要信息。
  • POST /build 现在可以为构建创建的所有容器设置资源限制。
  • CgroupParent 可以在主机配置中传递,以便在特定 cgroup 下设置容器 cgroups。
  • POST /build 关闭 HTTP 请求将取消构建
  • POST /containers/(id)/exec 包含 Warnings 个字段到响应中。