引擎 API 版本历史记录
v1.47 API 变更
GET /images/json响应现在包括Manifests字段,其中包含 有关镜像索引中包含的子清单的信息。这 包括特定于平台的清单和生成证明等内容。 仅当请求还将manifestsquery 参数设置为true. 警告:这是实验性的,可能随时更改,没有任何倒退 兼容性。
v1.46 API 变更
GET /info现在包括一个Containerd字段包含有关 使用的 containerd API 套接字和 containerd 命名空间的位置 通过守护程序运行容器和插件。POST /containers/create田NetworkingConfig.EndpointsConfig.DriverOpts, 和POST /networks/{id}/connect田EndpointsConfig.DriverOpts现在 支持标签com.docker.network.endpoint.sysctls用于设置每个接口 sysctls 的该值是逗号分隔的 sysctl 分配列表, 接口名称必须为 “IFNAME”。例如,要将net.ipv4.config.eth0.log_martians=1用net.ipv4.config.IFNAME.log_martians=1.在 API 版本 1.46 及以下的顶级 API 中--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事件,该事件在新建 无论是否标记了 image,都会构建它。
中已弃用的 Config 字段GET /images/{name}/json响应
这Config此端点返回的字段(用于 “Image Inspect”) 返回
不属于镜像配置且不属于
Docker 镜像规范和 OCI 镜像规范。
这些附加字段包含在响应中,因为 implementation detail,其中 api/types.使用的 ImageInspec 类型 因为响应正在使用容器。Config 类型。
容器。Config 类型是镜像配置的超集,而 image 的 Config 用作从镜像创建的容器的模板, 附加字段在运行时设置(从创建时传递的选项 容器),而不是从镜像 Config 中获取。
这些字段永远不会设置(并且始终返回类型的默认值), 但在留空时,响应中不会省略。由于这些字段不是 旨在作为镜像配置响应的一部分,它们已被弃用, ,并将从 API 中删除。
API 响应中当前包含以下字段,但 不是底层镜像的 Config 的一部分,并且已弃用:
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(除非设置,否则已省略)MacAddress(除非设置,否则已省略)StopTimeout(除非设置,否则已省略)
POST /services/create和POST /services/{id}/update现在支持 OomScoreAdj
v1.45 API 变更
POST /containers/create现在支持VolumeOptions.Subpath这允许 subpath 的 subpath 中。POST /images/search将始终假定false值is-automated田。因此,搜索is-automated=true不会产生任何结果, 而is-automated=false将是无作。GET /images/{name}/json不再包含Container和ContainerConfig领域。要访问镜像配置,请使用Config田 相反。- 这
Aliases调用GET /containers/{name:.*}/json不 longer 包含短容器 ID,但会恰好反映 最初提交到POST /containers/create端点。这 新推出DNSNames现在,当 short container 需要 ID。
v1.44 API 更改
- 获取
/images/json现在接受until滤波器。这接受一个时间戳和 列出在它之前创建的所有镜像。这<timestamp>可以是 Unix 时间戳, 日期格式的时间戳或 Go 持续时间字符串(例如10m,1h30m) 相对于守护进程计算机的时间计算。此更改未进行版本控制, 并影响所有 API 版本(如果守护程序具有此补丁)。 - 这
VirtualSize字段中的GET /images/{name}/json,GET /images/json, 和GET /system/dfresponses 现在被省略。使用Sizefield 替换为 其中包含相同的信息。 - 已弃用:
is_automated字段中的GET /images/search响应具有 已弃用,将来将始终设置为 false,因为 Docker Hub 正在弃用is_automated字段。废弃 未进行版本控制,并且适用于所有 API 版本。 - 已弃用:
is-automatedfilter 的GET /images/search端点。 这is_automated字段已被 Docker Hub 的搜索 API 弃用。 因此,搜索is-automated=true不会产生任何结果。这 deprecation 没有版本控制,适用于所有 API 版本。 - 只读绑定挂载现在在内核 >= 5.12 上递归只读
与支持该功能的运行时一起使用。
POST /containers/create,GET /containers/{id}/json和GET /containers/json现在支持BindOptions.ReadOnlyNonRecursive和BindOptions.ReadOnlyForceRecursive以自定义行为。 POST /containers/create现在接受HealthConfig.StartInterval要设置 interval 进行运行状况检查。GET /info现在包括一个CDISpecDirs字段,指示已配置的 CDI specifications 目录。使用应用的设置需要守护程序 要启用 Experimental,对于非 experimental 守护进程,空列表为 总是返回的。POST /networks/create现在返回 400,如果IPAMConfig无效 值。请注意,此更改是未版本控制的,并应用于所有 API 守护进程上支持版本 1.44 的版本。POST /networks/create现在,系统性地使用重复的名称会失败。如 因此,CheckDuplicate字段现已弃用。请注意,此更改是未版本控制的,并应用于 daemon 上支持版本 1.44.POST /containers/create现在接受多个EndpointSettings在NetworkingConfig.EndpointSettings.POST /containers/create和POST /networks/{id}/connect现在将捕获 以前仅在POST /containers/{id}/start. 这些端点还将返回它们找到的全套验证错误, 而不是只返回第一个。 请注意,此更改是未版本控制的,适用于所有 API 版本。POST /services/create和POST /services/{id}/update现在接受Seccomp和AppArmor字段中的ContainerSpec.Privileges对象。这允许 在 Swarm 服务中配置 Seccomp 和 AppArmor。- 特定于 Endpoint 的新
MacAddress字段已添加到NetworkSettings.EndpointSettingsupperPOST /containers/create和EndpointConfigupperPOST /networks/{id}/connect. 容器范围的MacAddress字段输入ConfigupperPOST /containers/create现已弃用。 - 该领域
Networks在POST /services/create和POST /services/{id}/updaterequests 现已弃用。您应该改用TaskTemplate.Networks. - 这
Container和ContainerConfig字段中的GET /images/{name}/json响应已弃用,将不再包含在 API v1.45 中。 GET /info现在包括status属性Runtimes.- 名为
DNSNames并包含所有非完全限定的 DNS 名称 已将特定网络上的容器GET /containers/{name:.*}/json. - 这
Aliases调用GET /containers/{name:.*}/json在 v1.44 及更早版本中 versions 包含短容器 ID。这将在下一个 API 版本 v1.45 中更改。 从该 API 版本开始,此特定值将从Aliases田 这样,此字段将准确反映最初提交给POST /containers/create端点。新引入的DNSNames现在应该改用。 - 字段
HairpinMode,LinkLocalIPv6Address,LinkLocalIPv6PrefixLen,SecondaryIPAddresses,SecondaryIPv6Addresses适用于NetworkSettings调用GET /containers/{id}/json是 已弃用,并将在未来发行版中删除。您应该在NetworkSettings.Networks. GET /images/{id}/json省略了Created字段(以前是0001-01-01T00:00:00Z) 如果Created字段。
v1.43 API 变更
POST /containers/create现在接受Annotations作为HostConfig. 可用于将任意元数据附加到容器,该容器也将是 在容器启动时传递给运行时。GET /images/json不再包含硬编码<none>:<none>和<none>@<none>在RepoTags和RepoDigests对于未标记的镜像。 在这种情况下,将生成空数组。- 这
VirtualSize字段中的GET /images/{name}/json,GET /images/json, 和GET /system/df响应已弃用,将不再包含在内 在 API v1.44 中。使用Size字段,其中包含相同的信息。 GET /info现在包括no-new-privileges在SecurityOptions字符串 list (全局启用此选项时)。此更改未进行版本控制,并且 如果守护程序具有此补丁,则会影响所有 API 版本。
v1.42 API 变更
删除了
BuilderSize字段位于GET /system/df端点。此字段 在 API 1.31 中作为实验性功能的一部分引入,现在不再是 自 API 1.40 起使用。 使用字段BuildCache而是跟踪 Builder 组件使用的存储。POST /containers/{id}/stop和POST /containers/{id}/restart现在接受signalquery 参数,该参数允许覆盖容器的默认 stop- 信号。GET /images/json现在接受 query 参数shared-size.设置时true, 返回的镜像将包括SharedSize,它提供共享磁盘上的大小 与系统上存在的其他镜像一起使用。GET /system/df现在接受 query 参数type.设置后, 仅计算并返回指定对象类型的数据。 可以多次指定该参数以选择多个对象类型。 支持的值为:container,image,volume,build-cache.GET /system/df现在可以同时使用。如果在 previous request 仍在处理中,该请求将收到结果 完成后。以前,错误 (a disk usage operation is already running) 将在此 情况。此更改未进行版本控制,并且会影响所有 API 版本,如果 daemon 有这个补丁。这
POST /images/create现在支持作系统和架构 ,即通过platformquery 参数(使用fromSrc选项从存档中导入镜像。以前,只有作系统 ,并且忽略了体系结构。如果没有platform选项,则 Host 的作系统和架构(默认使用)。此更改不是 versioned,并且如果守护程序具有此补丁,则会影响所有 API 版本。这
POST /containers/{id}/waitendpoint 现在返回一个400状态代码(如果 无效condition提供(在 API 1.30 及更高版本上)。删除了
KernelMemory字段POST /containers/create和POST /containers/{id}/updateendpoints 中,它设置的任何值都将被忽略 在 API 版本上v1.42然后向上。较旧的 API 版本仍然接受此字段,但 可能不起作用,具体取决于使用的内核版本和 OCI 运行时。GET /containers/{id}/json现在省略了KernelMemory和KernelMemoryTCP如果未设置。GET /info现在省略了KernelMemory和KernelMemoryTCP如果他们不是 受主机或主机的配置支持(如果正在使用 cgroups v2)。GET /_ping和HEAD /_ping现在返回Builder-Version默认情况下。 此标头包含要使用的默认生成器,并且是建议 由守护程序通告。但是,由客户选择哪个构建器 使用。Linux 上的默认值是版本 “2” (BuildKit),但守护程序可以是 配置为推荐版本 “1” (Classic Builder)。Windows 还没有 支持原生 Windows 镜像的 BuildKit,并使用 “1” (经典构建器) 作为 默认值。
此更改没有版本控制,并且会影响所有 API 版本(如果守护进程具有 这个补丁。
GET /_ping和HEAD /_ping现在返回一个Swarmheader,它允许 client 来检测守护进程上是否启用了 Swarm,而无需调用 其他终端节点。 此更改没有版本控制,并且会影响所有 API 版本(如果守护进程具有 这个补丁。客户端必须将此标头视为 “可选”,并回退到 如果标头不存在,则使用其他终端节点获取此信息。这
Swarmheader 可以包含以下值之一:- “非活动”
- “待定”
- “错误”
- “锁定”
- “活动/工作线程”
- “主动/经理”
POST /containers/createfor Windows containers 现在接受HostConfig.Resources.Devices.PathOnHost.以及现有的class/<GUID>语法<IDType>://<ID>现已得到认可。支持特定的<IDType>值 取决于底层实现和 Windows 版本。此更改不是 versioned,并且如果守护程序具有此补丁,则会影响所有 API 版本。GET /containers/{id}/attach,GET /exec/{id}/start,GET /containers/{id}/logsGET /services/{id}/logs和GET /tasks/{id}/logs现在设置 Content-Type 标头 自application/vnd.docker.multiplexed-stream当多路复用 stdout/stderr stream 被发送到客户端,application/vnd.docker.raw-stream否则。POST /volumes/create现在接受新的ClusterVolumeSpec创建集群 卷 (CNI) 的 Volume。仅当守护进程是 Swarm 管理器时,才能使用此选项。 创建时的 Volume 响应现在还可以包含ClusterVolume田 包含有关已创建卷的信息。这
BuildCache.Parentfield 的GET /system/df已弃用 现在被省略了。v1.42 之前的 API 版本继续包含此字段。GET /system/df现在包括一个新的Parents字段,对于 “build-cache” 记录, 其中包含 build-cache 记录的父 ID 列表。返回的卷信息
GET /volumes/{name},GET /volumes和GET /system/df现在可以包含ClusterVolume如果卷是集群 volume (要求守护进程是 Swarm 管理器)。这
Volumetype 返回Added newClusterVolume 字段添加了一个新的
PUT /volumes{name}终端节点来更新集群卷 (CNI)。 仅当守护程序是 Swarm 管理器时,才支持集群卷。GET /containers/{name}/attach/ws终端节点现在接受stdin,stdout和stderrquery 参数仅附加到配置的流。注意:这些参数之前在较旧的 API 版本中有记录,但没有 实际支持。v1.42 之前的 API 版本继续忽略这些参数 并默认附加到所有流。为了保留 v1.42 之前的行为, 设置所有三个查询参数 (
?stdin=1,stdout=1,stderr=1).POST /containers/create现在,遵循HostConfig.ConsoleSize财产。 立即创建具有所需终端大小的容器,并且客户端不再 需要自行设置所需的大小。POST /containers/create允许设置CreateMountpoint使主机路径为 如果缺少,则创建。这带来了BindsPOST /containers/create如果 BindOptions|VolumeOptions|Tmpfs选项 设置了不匹配的挂载类型。POST /containers/{id}/exec现在接受可选的ConsoleSize参数。 它允许在创建已执行进程时立即设置其控制台大小。POST /volumes/prune现在,默认情况下将仅删除 “匿名” 卷(未命名的卷)。新的 filter 参数all可以设置为 truth-y 值 (true,1) 获取旧行为。
v1.41 API 变更
GET /events现在返回prune修剪资源完成后的事件。 为container,network,volume,image和builder,并具有reclaimed属性,指示空间量 reclaimed (以字节为单位)。GET /info现在返回一个CgroupVersion字段,其中包含 cgroup 版本。GET /info现在返回一个DefaultAddressPools字段,其中包含 本地网络的自定义默认地址池,可以在daemon.jsonfile 或--default-address-pooldockerd 选项。POST /services/create和POST /services/{id}/update现在支持BindOptions.NonRecursive.这
ClusterStore和ClusterAdvertise字段中GET /info已弃用 现在,如果它们包含空值,则省略它们。此更改未进行版本控制, 并影响所有 API 版本(如果守护程序具有此补丁)。这
filter(singular) 查询参数,该参数已被弃用,取而代之的是filters选项现已从 Docker 1.13 的GET /images/json端点。当使用 API 版本 1.40 或更低版本时,该参数仍然可用。GET /services现在返回CapAdd和CapDrop作为ContainerSpec.GET /services/{id}现在返回CapAdd和CapDrop作为ContainerSpec.POST /services/create现在接受CapAdd和CapDrop作为ContainerSpec.POST /services/{id}/update现在接受CapAdd和CapDrop作为ContainerSpec.GET /tasks现在返回CapAdd和CapDrop作为ContainerSpec.GET /tasks/{id}现在返回CapAdd和CapDrop作为ContainerSpec.GET /services现在返回Pids在TaskTemplate.Resources.Limits.GET /services/{id}现在返回Pids在TaskTemplate.Resources.Limits.POST /services/create现在接受Pids在TaskTemplate.Resources.Limits.POST /services/{id}/update现在接受Pids在TaskTemplate.Resources.Limits以限制 PID 的最大数量。GET /tasks现在返回Pids在TaskTemplate.Resources.Limits.GET /tasks/{id}现在返回Pids在TaskTemplate.Resources.Limits.POST /containers/create现在接受platformquery 参数的os[/arch[/variant]].设置后,守护程序将检查请求的镜像是否存在于本地镜像中 cache 替换为给定的 OS 和架构,否则返回一个
404地位。如果未设置此选项,则使用主机的本机 OS 和 Architecture 在镜像缓存中查找镜像。但是,如果未传递任何平台,并且 给定的镜像确实存在于本地镜像缓存中,但其作系统或架构 不匹配,则使用可用镜像创建容器,并显示警告 已添加到
Warningsfield 中;WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requestedPOST /containers/create现在接受HostConfig.CgroupnsMode财产。 将属性设置为host在守护进程的 cgroup 命名空间中创建容器,或者private在其自己的私有 cgroup 命名空间中创建容器。每个守护进程的 默认值为host,并且可以使用CgroupNamespaceMode守护进程配置 参数。GET /info现在返回一个OSVersion字段,包含作系统的 版本。此更改未进行版本控制,并且会影响所有 API 版本(如果守护程序 具有此补丁。GET /info不再返回SystemStatus字段(如果它没有 值集。此更改未进行版本控制,并且会影响所有 API 版本,如果 daemon 有这个补丁。GET /services现在接受 query 参数status.设置时true, 返回的服务将包括ServiceStatus,它提供 Desired、 服务的 Running (正在运行) 和 Completed task (已完成任务) 计数。GET /services现在可能包括ReplicatedJob或GlobalJob作为Mode在ServiceSpec.GET /services/{id}现在可能包括ReplicatedJob或GlobalJob作为Mode在ServiceSpec.POST /services/create现在接受ReplicatedJob orGlobalJobas the模式in theServiceSpec 的POST /services/{id}/update接受更新ReplicatedJob对象在ServiceSpec.Mode.服务模式依然 但是,无法更改。GET /services现在包括JobStatuson 具有模式ReplicatedJob或GlobalJob.GET /services/{id}现在包括JobStatuson 具有模式ReplicatedJob或GlobalJob.GET /tasks现在包括JobIterationon 从 job-mode 生成的 Task 服务。GET /tasks/{id}现在包括JobIteration如果从 job-mode 服务。GET /containers/{id}/stats现在接受查询参数 (one-shot),当与stream=false获取 一组统计信息,而不是等待两个收集周期在 1 秒内有 2 个 CPU 统计信息。这
KernelMemory字段输入HostConfig.Resources现已弃用。这
KernelMemory字段输入Info现已弃用。GET /services现在返回Ulimits作为ContainerSpec.GET /services/{id}现在返回Ulimits作为ContainerSpec.POST /services/create现在接受Ulimits作为ContainerSpec.POST /services/{id}/update现在接受Ulimits作为ContainerSpec.
v1.40 API 变更
- 这
/_ping端点现在可以使用GET或HEAD请求。 使用HEADrequest 中,将返回所有标头,但 body 为空 (Content-Length: 0).此更改未进行版本控制,并且会影响所有 API 版本(如果守护程序具有此补丁)。建议客户尝试 用HEAD,但回退到GET如果HEAD请求失败。 GET /_ping和HEAD /_ping现已设置Cache-Control和Pragmaheaders 设置为 防止结果被缓存。此更改未进行版本控制,并且会影响 所有 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.ConfigsPOST /services/{id}/update现在包括Runtime作为ContainerSpec.ConfigsGET /tasks现在返回Sysctls作为ContainerSpec.GET /tasks/{id}现在返回Sysctls作为ContainerSpec.GET /networks现在支持danglingfilter 类型。当设置为true(或1),则终端节点将返回容器未使用的所有网络。什么时候 设置为false(或0),则仅由一个或多个容器使用 返回。GET /nodes现在支持筛选条件类型node.labelfilter 以基于节点进行筛选 在 node.label 上。标签筛选条件的格式为node.label=<key>/node.label=<key>=<value>返回具有指定标签的 Move,或者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 的 chunk 选项。服务器 将回复确认。此选项提高了 消息传输。此更改未进行版本控制,并且会影响所有 API versions (如果守护程序具有此补丁)。POST /containers/create,GET /containers/{id}/json和GET /containers/json现在支持BindOptions.NonRecursive.POST /swarm/init现在接受DataPathPort属性设置数据路径端口号。GET /info现在返回有关DataPathPort目前在 Swarm 中使用GET /info现在返回PidsLimitboolean 来指示主机内核是否具有 已启用 PID 限制支持。GET /info现在包括name=rootless在SecurityOptions当守护程序在 rootless 模式。此更改没有版本控制,并且会影响所有 API 版本(如果守护进程具有 这个补丁。GET /info现在返回none如CgroupDriver当守护程序以无根模式运行时。 此更改未进行版本控制,如果守护程序具有此补丁,则会影响所有 API 版本。POST /containers/create现在接受DeviceRequests作为HostConfig. 可用于设置 Nvidia GPU。GET /swarmendpoint 现在返回 DataPathPort 信息POST /containers/create现在需要KernelMemoryTCP字段设置内核 TCP 缓冲区内存的硬限制。GET /service现在返回MaxReplicas作为Placement.GET /service/{id}现在返回MaxReplicas作为Placement.POST /service/create和POST /services/(id or name)/update现在上场MaxReplicas作为服务的一部分Placement,允许为服务指定每个节点的最大副本数。POST /containers/create现在使用HostConfig.IpcMode=private默认情况下,如果未显式指定 IpcMode。可以更改 per-daemon 的默认值 返回shareable通过使用DefaultIpcModedaemon 配置参数。POST /containers/{id}/update现在接受PidsLimit字段来调整容器的 PID 限制。设置0或-1无限。离开null不更改当前值。POST /build现在接受outputs键,用于在使用 BuildKit 模式时配置构建输出。
V1.39 API 变更
GET /info现在返回一个空字符串,而不是<unknown>为KernelVersion和OperatingSystem如果守护程序无法获取此信息。GET /info现在返回有关产品许可证的信息(如果许可证 已应用于守护程序。GET /info现在返回一个Warnings字段,包含警告和信息 有关缺少功能或与守护程序配置相关的问题的消息。POST /swarm/init现在接受DefaultAddrPool设置全局范围默认地址池的属性POST /swarm/init现在接受SubnetSize属性来设置全局范围网络,方法是为 每个此类网络的子网掩码长度POST /session(在 V1.31 中添加的不再是实验性的。 此终端节点可用于在 client 和 daemon 的 Bean S T
V1.38 API 变更
GET /tasks和GET /tasks/{id}现在返回一个NetworkAttachmentSpec田 包含ContainerID对于连接到 “attachable” 的非服务容器 群范围的网络。
v1.37 API 变更
POST /containers/create和POST /services/create现在支持公开 SCTP 端口。POST /configs/create和POST /configs/{id}/create现在接受Templating司机。GET /configs和GET /configs/{id}现在返回Templatingdriver.POST /secrets/create和POST /secrets/{id}/create现在接受Templating司机。GET /secrets和GET /secrets/{id}现在返回Templating密钥的驱动程序。
v1.36 API 变更
Get /events现在返回exec_die事件。
v1.35 API 更改
POST /services/create和POST /services/(id)/update现在接受Isolation字段,设置 运行该服务的容器 (default,process或hyperv).这 配置仅用于 Windows 容器。GET /containers/(name)/logs现在支持其他查询参数:until, ,这将返回在指定时间戳之前发生的日志行。POST /containers/{id}/exec现在接受WorkingDir属性设置 work-dir 的 EXEC 进程,独立于容器的 work-dir。Get /version现在返回一个Platform.Name字段,可供产品使用 使用 Moby 作为基础来返回有关平台的信息。Get /version现在返回一个Components字段,该字段可用于返回 有关所用组件的信息。有关引擎本身的信息是 现在作为 “Component” 版本包含在内,并包含 顶级Version,GitCommit,APIVersion,MinAPIVersion,GoVersion,Os,Arch,BuildTime,KernelVersion和Experimental领域。会 forward 中,来自Components部分优先于他们的 顶级对应项。
v1.34 API 变更
POST /containers/(name)/wait?condition=removed现在也返回 如果容器移除失败。指向名为Error添加到响应 JSON 中以指示失败。 如果Error是null,则容器删除成功,否则 测试指示容器删除失败原因的错误消息 可从Error.Message田。
v1.33 API 变更
GET /events现在支持过滤更多 4 种事件:config,node,secret和service.
v1.32 API 变更
POST /images/create现在接受platformparameter 的os[/arch[/variant]].POST /containers/create现在接受HostConfig.IpcMode财产。新值为private,shareable, 和none.DELETE /networks/{id or name}修复了name等于另一个 network 的名称能够掩盖这一点id.如果同时存在具有给定名称的网络和具有给定 ID 的网络,则现在将删除具有给定 ID 的网络。此更改未进行版本控制,并且会影响所有 API 版本 如果守护程序具有此补丁。
v1.31 API 变更
DELETE /secrets/(name)现在,当密钥不存在时,返回状态代码 404 而不是 500。POST /secrets/create现在,在创建已存在的密钥时,返回状态代码 409 而不是 500。POST /secrets/create现在接受Driverstruct 的Name和特定于驱动程序Options传递给 store 密钥 在外部密钥存储中。这Driverproperty 可以省略 如果使用默认(内部)密钥存储。GET /secrets/(id)和GET /secrets现在返回一个Driver结构 包含Name和特定于驱动程序Options外部 secrets store 用于存储密钥。这Driverproperty 为 如果未使用外部存储,则省略。POST /secrets/(name)/update现在,在更新密钥的内容(不是标签)时,返回状态代码 400 而不是 500。POST /nodes/(name)/update现在,当降级最后一个节点失败时,返回状态代码 400 而不是 500。GET /networks/(id or name)现在采用可选的 query 参数scope,这将根据范围 (local,swarm或global).POST /session是一个新终端节点,可用于在 client 和 守护进程。此端点是实验性的,仅当守护进程使用实验性功能启动时才可用 启用。GET /images/(name)/get现在包括一个ImageMetadata字段,其中包含引擎本地的镜像元数据,而不是镜像配置的一部分。POST /services/create现在接受PluginSpec什么时候TaskTemplate.Runtime设置为pluginGET /events现在支持 Config 事件create,update和remove在用户创建、更新或删除配置时发出的GET /volumes/和GET /volumes/{name}现在返回一个CreatedAt田 包含创建卷的日期 / 时间。如果 卷的创建日期 / 时间未知。对于范围为 “global” 的卷, 此字段表示 volume 的实例,这可能不同于不同节点上的同一卷的实例。GET /system/df现在返回一个CreatedAt字段Volumes.请参阅/volumes/endpoint 获取此字段的描述。
v1.30 API 更改
GET /info现在返回支持的日志记录驱动程序列表,包括插件。GET /info和GET /swarm现在,如果节点位于 swarm 中,则返回集群范围的 swarm CA 信息:集群根 CA 证书和集群 TLS 叶证书颁发者的使用者和公钥。它还会显示所需的 CA 签名证书(如果作为规范的一部分提供了任何证书)。POST /build/现在(当不静音时)会生成一个Auxmessage 在 JSON 输出流中,其中包含有效负载types.BuildResult对于生成的每张镜像。最终的此类消息将引用生成生成的镜像。GET /nodes和GET /nodes/{id}现在,如果节点是 swarm 的一部分,则返回有关 swarm TLS 信息的其他信息:受信任的根 CA,以及 颁发者的主题和公钥。GET /distribution/(name)/json是一个新终端节点,它返回带有有效负载的 JSON 输出流types.DistributionInspect作为镜像名称。它包括一个带有摘要的描述符,以及通过直接联系注册表检索到的受支持平台。POST /swarm/update现在接受 3 个附加参数作为 swarm 规范的 CA 配置的一部分;所需的 CA 证书 swarm、swarm 所需的 CA 密钥(如果不使用外部证书)以及用于强制 swarm 的可选参数 生成并轮换到新的 CA 证书/密钥对。POST /service/create和POST /services/(id or name)/update现在上场Platforms作为服务的一部分Placement,允许指定服务支持的平台。POST /containers/(name)/wait现在接受conditionquery 参数来指示要等待的状态更改条件。此外,现在会立即返回响应标头,以确认服务器已为客户端注册了等待回调。POST /swarm/init现在接受DataPathAddr属性设置用于数据流量的 IP 地址或网络接口POST /swarm/join现在接受DataPathAddr属性设置用于数据流量的 IP 地址或网络接口GET /events现在支持在用户创建、更新和删除 Service、Node 和 Secret 时发出的 Service、Node 和 Secret 事件GET /events现在支持在用户删除 Swarm 范围的网络时触发的 Network Remove 事件GET /events现在支持筛选条件类型scope其中 supported 的值可以是 swarm 和 localPUT /containers/(name)/archive现在接受copyUIDGID参数以允许将 UID/GID 映射复制到 dest 文件或目录。
v1.29 API 变更
DELETE /networks/(name)现在允许删除入口网络,即用于提供路由网格的网络。POST /networks/create现在支持通过指定Ingressboolean 字段。截至目前,仅在使用 overlay 网络驱动程序时支持此功能。GET /networks/(name)现在返回一个Ingress字段显示网络是否为入口网络。GET /networks/现在支持scopefilter 根据网络模式 (swarm,global或local).POST /containers/create,POST /service/create和POST /services/(id or name)/update现在接受StartPeriod作为HealthConfig允许指定一个时间段,在此期间,即使运行状况检查未通过,也不应将容器视为运行状况不佳。GET /services/(id)现在接受insertDefaultsquery-parameter 将默认值合并到 Service Inspect 输出中。POST /containers/prune,POST /images/prune,POST /volumes/prune和POST /networks/prune现在支持labelfilter 以根据标签筛选容器、镜像、卷或网络。标签过滤器的格式可以是label=<key>/label=<key>=<value>以删除具有指定标签的 Move,或者label!=<key>/label!=<key>=<value>以删除没有指定标签的标签。POST /services/create现在接受Privileges作为ContainerSpec.目前的权限包括CredentialSpec和SELinuxContext.
v1.28 API 变更
POST /containers/create现在包括一个Consistency字段为每个Mount,以及可能的值default,consistent,cached或delegated.GET /containers/create现在采用DeviceCgroupRules字段输入HostConfig允许为创建的容器设置自定义设备 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现在支持publish和exposefilters 来筛选公开或发布某些端口的容器。POST /services/create和POST /services/(id or name)/update现在接受ReadOnly参数,它将容器的根文件系统挂载为只读。POST /build现在接受extrahosts参数指定要在构建期间使用的主机到 IP 映射。POST /services/create和POST /services/(id or name)/update现在接受rollback的值FailureAction.POST /services/create和POST /services/(id or name)/update现在接受可选的RollbackConfig对象,该对象指定回滚选项。GET /services现在支持modefilter 以根据服务模式筛选服务(可以是global或replicated).POST /containers/(name)/update现在支持更新NanoCpus表示 CPU 配额(以 10 为单位)-9CPU 的 CPU 中。POST /plugins/{name}/disable现在接受forcequery-parameter 来禁用插件,即使插件仍在使用。
v1.27 API 变更
GET /containers/(id or name)/stats现在包括一个online_cpus字段precpu_stats和cpu_stats.如果此字段为nil然后,为了与较旧的守护进程兼容,相应的cpu_usage.percpu_usage数组。
v1.26 API 变更
POST /plugins/(plugin name)/upgrade升级插件。
v1.25 API 变更
- 现在,所有 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.Typelayers+base),该 API 不再受支持,并且 这RootFS.BaseLayer字段已被删除。GET /info现在返回Isolation.POST /containers/create现在需要AutoRemove在 HostConfig 中,启用在容器的进程退出时自动删除 daemon 端的容器。GET /containers/json和GET /containers/(id or name)/json现在返回"removing"作为State.Status字段(如果要删除容器)。以前,“exited” 作为 status 返回。GET /containers/json现在接受removing作为status滤波器。GET /containers/json现在支持按以下方式筛选容器health地位。DELETE /volumes/(name)现在接受forcequery 参数强制删除已由 Volume Driver 插件带外删除的卷。POST /containers/create/和POST /containers/(name)/update现在验证重启策略。POST /containers/create现在验证 NetworkingConfig 中的 IPAMConfig,并返回无效 IPv4 和 IPv6 地址 (--ip和--ip6在docker create/run).POST /containers/create现在采用Mounts字段输入HostConfig它替换了Binds,Volumes和Tmpfs.注意:Binds,Volumes和Tmpfs仍然可用,并且可以与Mounts.POST /build现在执行Dockerfile,如果语法不正确,则返回错误。请注意,此更改是未进行版本控制的,并应用于所有 API 版本。POST /build接受cachefrom参数指定用于构建缓存的镜像。GET /networks/endpoint 现在可以正确返回所有网络的列表, 而不是默认网络(如果提供了尾部斜杠),但没有name或id.DELETE /containers/(name)endpoint 现在返回removal of container name is already in progress状态代码为 400,当容器名称处于 Removing in progress 状态时。GET /containers/json现在支持is-taskfilter 到 filter 作为任务的容器(群模式下服务的一部分)。POST /containers/create现在需要StopTimeout田。POST /services/create和POST /services/(id or name)/update现在接受Monitor和MaxFailureRatio参数,用于控制对服务更新期间故障的响应。POST /services/(id or name)/update现在接受ForceUpdate参数中的TaskTemplate,这会导致服务更新,即使没有通常会触发更新的更改。POST /services/create和POST /services/(id or name)/update现在返回一个Warnings数组。GET /networks/(name)现在返回字段Created以响应 Show Network Created Time。POST /containers/(id or name)/exec现在接受Env字段,其中包含要在命令执行的上下文中设置的环境变量列表。GET /volumes,GET /volumes/(name)和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标头指定是否启用实验性功能(值可以是true或false). - 现在,每个 API 响应都包含一个
API-Version标头指定服务器的默认 API 版本。 - 这
hostConfig选项现在接受字段CpuRealtimePeriod和CpuRtRuntime将 CPU 运行时分配给 RT 任务,当CONFIG_RT_GROUP_SCHED在内核中启用。 - 这
SecurityOptions字段中的GET /info响应现在包括userns如果在守护程序中启用了用户命名空间。 GET /nodes和GET /node/(id or name)现在返回Addr作为节点的Status,这是该节点连接到管理器的地址。- 这
HostConfig字段现在包括NanoCpus表示 CPU 配额(以 10 为单位)-9CPU 的 CPU 中。 GET /info现在返回有关安全选项的更多结构化信息。- 这
HostConfig字段现在包括CpuCount这表示容器可执行的 CPU 数量。仅限 Windows 守护程序。 POST /services/create和POST /services/(id or name)/update现在接受TTY参数,该参数在容器中分配一个伪 TTY。POST /services/create和POST /services/(id or name)/update现在接受DNSConfig参数,该参数指定解析器配置文件 (resolv.conf) 中与 DNS 相关的配置Nameservers,Search和Options.POST /services/create和POST /services/(id or name)/update现在支持node.platform.arch和node.platform.os服务中的约束TaskSpec.Placement.Constraints田。GET /networks/(id or name)现在包括 Swarm Mode 叠加网络的所有对等节点的 IP 和名称。GET /pluginslist 插件。POST /plugins/pull?name=<plugin name>拉取一个插件。GET /plugins/(plugin name)检查插件。POST /plugins/(plugin name)/set配置插件。POST /plugins/(plugin name)/enable启用插件。POST /plugins/(plugin name)/disable禁用插件。POST /plugins/(plugin name)/push推送插件。POST /plugins/create?name=(plugin name)创建插件。DELETE /plugins/(plugin name)删除插件。POST /node/(id or name)/update现在接受两者id或name以标识要更新的节点。GET /images/json现在支持reference滤波器。GET /secrets返回有关密钥的信息。POST /secrets/create创建密钥。DELETE /secrets/{id}删除密钥id.GET /secrets/{id}返回有关密钥的信息id.POST /secrets/{id}/update更新 secretid.POST /services/(id or name)/update现在接受 Service Name 或 Service ID 的前缀作为参数。POST /containers/create添加了 2 个内置的 log-opts,可用于所有日志记录驱动程序,mode(blocking|non-blocking) 和max-buffer-size(例如2m),它启用非阻塞日志缓冲区。POST /containers/create现在需要HostConfig.Initfield 来运行 init 在转发 Signals 和 Reaps 流程的容器内。
v1.24 API 变更
POST /containers/create现在需要StorageOpt田。GET /info现在返回SecurityOptions字段, 显示 ifapparmor,seccomp或selinux受支持。GET /info不再返回ExecutionDriver财产。集成后不再使用此属性 在 Docker 1.11 中使用 ContainerD。GET /networks现在支持筛选依据label和driver.GET /containers/json现在支持按以下方式筛选容器networkname 或 id。POST /containers/create现在需要IOMaximumBandwidth和IOMaximumIOps领域。仅限 Windows 守护程序。POST /containers/create现在返回 HTTP 400 “bad parameter” 消息 如果未指定命令(而不是 HTTP 500 “服务器错误”)GET /images/search现在采用filtersquery 参数。GET /events现在支持reload重新加载守护程序配置时发出的事件。GET /events现在支持按守护程序名称或 ID 进行筛选。GET /events现在支持detach从容器进程分离时发出的事件。GET /events现在支持exec_detach从 exec 进程分离时发出的事件。GET /images/json现在支持滤镜since和before.POST /containers/(id or name)/start不再接受HostConfig.POST /images/(name)/tag不再具有forcequery 参数。GET /images/search现在支持最大返回的搜索结果数limit.POST /containers/{name:.*}/copy现已删除,并从此 API 版本开始出现错误。- API 错误现在以 JSON 格式返回,而不是以纯文本形式返回。
POST /containers/create和POST /containers/(id)/start允许您配置内核参数 (sysctl) 以在容器中使用。POST /containers/<container ID>/exec和POST /exec/<exec ID>/start不再期望存在 “Container” 字段。此属性未使用 不再由 Docker 客户端发送。POST /containers/create/现在验证主机名(应该是有效的 RFC 1123 主机名)。POST /containers/create/HostConfig.PidMode字段现在接受container:<name|id>, 让容器加入现有容器的 PID 命名空间。
v1.23 API 变更
GET /containers/json返回容器的状态,即created,restarting,running,paused,exited或dead.GET /containers/json返回容器的挂载点。GET /networks/(name)现在返回一个Internal字段显示网络是否为内部网络。GET /networks/(name)现在返回一个EnableIPv6字段显示网络是否启用了 IPv6。POST /containers/(name)/update现在支持更新容器的重启策略。POST /networks/create现在支持在网络上启用 IPv6,方法是将EnableIPv6字段(使用标签执行此作将不再有效)。GET /info现在返回CgroupDriver显示守护进程正在使用的 cgroup 驱动程序的字段;cgroupfs或systemd.GET /info现在返回KernelMemory字段中显示是否支持 “kernel memory limit” 。POST /containers/create现在需要PidsLimit字段中,如果内核为 >= 4.3 并且支持 PIDS cgroup。GET /containers/(id or name)/stats现在返回pids_stats,如果内核为 >= 4.3 并且支持 pids cgroup。POST /containers/create现在允许您覆盖 usernamespaces 重新映射并使用容器的特权选项。POST /containers/create现在允许指定nocopy对于命名卷,这将禁用从容器路径到卷的自动复制。POST /auth现在返回一个IdentityToken当受注册表支持时。POST /containers/create同时Hostname和Domainname字段将导致容器的主机名设置为Hostname,而不是Hostname.Domainname.GET /volumes现在支持更多过滤器,新增的过滤器是name和driver.GET /containers/(id or name)/logs现在接受detailsquery 参数流式传输提供给容器的额外属性LogOpts,例如环境变量和标签。POST /images/load现在以 JSON 流的形式返回进度信息,并且具有quietquery 参数来隐藏进度详细信息。
v1.22 API 变更
- 这
HostConfig.LxcConf字段已被删除,并且不再可用于POST /containers/create和GET /containers/(id)/json. POST /container/(name)/update更新容器的资源。GET /containers/json支持过滤器isolation在 Windows 上。GET /containers/json现在返回容器网络的列表。GET /info现在返回Architecture和OSType字段, 提供信息 关于运行守护程序的主机架构和作系统类型。GET /networks/(name)现在返回一个Name字段。GET /version现在返回BuildTime字段以 RFC3339Nano 格式进行 与 API 返回的其他日期/时间值一致。AuthConfig现在支持registrytoken用于基于令牌的身份验证POST /containers/create现在有 4M 的最小值限制HostConfig.KernelMemory- 推送
POST /images/(name)/push和 pull 启动POST /images/create如果发出 API 请求的 HTTP 连接在 推或拉完成。 POST /containers/create现在允许您为 设备(以每秒字节数或 IO/秒为单位)。GET /networks现在支持筛选依据name,id和type.POST /containers/create现在允许您为容器设置静态 IPv4 和/或 IPv6 地址。POST /networks/(id)/connect现在允许您为容器设置静态 IPv4 和/或 IPv6 地址。GET /info现在包括 正在运行、已停止和已暂停的容器数。POST /networks/create现在支持通过设置Internal田。POST /networks/(id)/disconnect现在包括一个Force强制断开容器与网络的连接的选项GET /containers/(id)/json现在返回NetworkID的容器。POST /networks/create现在支持 IPAM 配置中的选项字段,该字段提供选项 用于自定义 IPAM 插件。GET /networks/{network-id}现在返回自定义 IPAM 插件的 IPAM 配置选项(如果有) 可用。GET /networks/<network-id>现在返回用户定义的网络的子网信息。GET /info现在可以返回SystemStatus字段,用于返回有关应用程序的其他信息 构建在 Engine 之上。
v1.21 API 变更
GET /volumes列出所有卷驱动程序中的卷。POST /volumes/create以创建卷。GET /volumes/(name)获取有关卷的低级信息。DELETE /volumes/(name)删除具有指定名称的卷。VolumeDriver已从config自HostConfig使配置可移植。GET /images/(name)/json现在返回有关镜像的RepoTags和RepoDigests.- 这
config选项现在接受字段StopSignal,它指定用于终止容器的信号。 GET /containers/(id)/stats将分别返回每个接口的网络信息。- 这
HostConfig选项现在包括DnsOptions字段以配置容器的 DNS 选项。 POST /build现在可选择采用构建时变量的序列化 Map。GET /events现在包括一个timenano字段,除了现有的time田。GET /events现在支持按镜像和容器标签进行筛选。GET /info现在列出引擎版本信息并返回CPUShares和Cpuset.GET /containers/json将返回ImageID容器使用的镜像。POST /exec/(name)/start现在,当容器停止或暂停时,将返回 HTTP 409。POST /containers/create现在需要KernelMemory在 HostConfig 中指定内核内存限制。GET /containers/(name)/json现在接受size参数。将此参数设置为“1”会在SizeRw和SizeRootFs领域。GET /containers/(name)/json现在返回一个NetworkSettings.Networks田 详细说明每个网络的网络设置。此字段弃用了NetworkSettings.Gateway,NetworkSettings.IPAddress,NetworkSettings.IPPrefixLen和NetworkSettings.MacAddressfields,其中 仍会返回以实现向后兼容性,但将在将来的版本中删除。GET /exec/(id)/json现在返回一个NetworkSettings.Networks田 详细说明每个网络的 NetworkSettings此字段弃用了NetworkSettings.Gateway,NetworkSettings.IPAddress,NetworkSettings.IPPrefixLen和NetworkSettings.MacAddressfields,其中 仍会返回以实现向后兼容性,但将在将来的版本中删除。- 这
HostConfig选项现在包括OomScoreAdj字段以调整 badness 启发式。此启发式方法选择哪些进程 OOM killer kills 在内存不足的情况下。
v1.20 API 变更
GET /containers/(id)/archive从容器中获取文件系统内容的存档。PUT /containers/(id)/archive上传要提取到的内容存档 容器文件系统中的现有目录。POST /containers/(id)/copy已弃用,取而代之的是上述archiveendpoint 的 intent 中,该 intent 可用于从容器下载文件和目录。- 这
hostConfig选项现在接受字段GroupAdd,它指定了 容器进程将作为其他组运行的列表。
v1.19 API 变更
- 当守护程序检测到与客户端的版本不匹配时,通常在 客户端比守护程序新,现在会返回 HTTP 400 的 404。
GET /containers/(id)/stats现在接受streambool 仅获取一组统计数据并断开连接。GET /containers/(id)/logs现在接受sincetimestamp 参数。GET /info字段Debug,IPv4Forwarding,MemoryLimit和SwapLimit现在以 boolean 格式返回,而不是以 int 格式返回。此外, End Point 现在返回新的布尔字段CpuCfsPeriod,CpuCfsQuota和OomKillDisable.- 这
hostConfig选项现在接受字段CpuPeriod和CpuQuota POST /build接受cpuperiod和cpuquota选项
v1.18 API 变更
GET /version现在返回Os,Arch和KernelVersion.POST /containers/create和POST /containers/(id)/start允许您设置在容器中使用的 ulimit 设置。GET /info现在返回SystemTime,HttpProxy,HttpsProxy和NoProxy.GET /images/json添加了一个RepoDigests字段以包含镜像摘要信息。POST /build现在可以为为构建创建的所有容器设置资源约束。CgroupParent可以在主机配置中传递,以在特定 cgroup 下设置容器 cgroup。POST /build关闭 HTTP 请求会取消构建POST /containers/(id)/exec包括Warnings字段到响应。