Engine API version history
v1.51 API changes
Docker Engine API v1.51 documentation
GET /images/jsonnow sets the value ofContainersfield for all images to the count of containers using the image. This field was previously always -1.- Deprecated: The field
NetworkSettings.Bridgereturned byGET /containers/{id}/jsonis deprecated and will be removed in the next API version. - Deprecated: The field
KernelMemoryTCPas part ofPOST /containers/{id}/updateand returned byGET /containers/{id}/jsonis deprecated and will be removed in the next API version. - Deprecated: The field
KernelMemoryTCPas part ofGET /infois deprecated and will be removed in the next API version. - Deprecated: the
ParentandDockerVersionfields returned by theGET /images/{name}/jsonendpoint are deprecated. These fields are set by the legacy builder, and are no longer set when using BuildKit. The API continues returning these fields when set for informational purposes, but they should not be depended on as they will be omitted once the legacy builder is removed. - Deprecated: the
Config.DockerVersionfield returned by theGET /pluginsandGET /images/{name}/jsonendpoints is deprecated. The field is no longer set, and is omitted when empty.
v1.50 API changes
Docker Engine API v1.50 documentation
GET /infonow includes aDiscoveredDevicesfield. This is an array ofDeviceInfoobjects, each providing details about a device discovered by a device driver. Currently only the CDI device driver is supported.DELETE /images/{name}now supports aplatformsquery parameter. It accepts an array of JSON-encoded OCI Platform objects, allowing for selecting specific platforms to delete content for.- Deprecated: The
BridgeNfIptablesandBridgeNfIp6tablesfields in theGET /inforesponse were deprecated in API v1.48, and are now omitted in API v1.50. - Deprecated:
GET /images/{name}/jsonno longer returns the followingConfigfields;Hostname,Domainname,AttachStdin,AttachStdout,AttachStderrTty,OpenStdin,StdinOnce,Image,NetworkDisabled(already omitted unless set),MacAddress(already omitted unless set),StopTimeout(already omitted unless set). These additional fields were included in the response due to an implementation detail but not part of the image's Configuration. These fields were marked deprecated in API v1.46, and are now omitted. Older versions of the API still return these fields, but they are always empty.
v1.49 API changes
Docker Engine API v1.49 documentation
GET /images/{name}/jsonnow supports aplatformparameter (JSON encoded OCI Platform type) allowing to specify a platform of the multi-platform image to inspect. This option is mutually exclusive with themanifestsoption.GET /infonow returns aFirewallBackendcontaining information about the daemon's firewalling configuration.- Deprecated: The
AllowNondistributableArtifactsCIDRsandAllowNondistributableArtifactsHostnamesfields in theRegistryConfigstruct in theGET /inforesponse are omitted in API v1.49. - Deprecated: The
ContainerdCommit.Expected,RuncCommit.Expected, andInitCommit.Expectedfields in theGET /infoendpoint were deprecated in API v1.48, and are now omitted in API v1.49.
v1.48 API changes
Docker Engine API v1.48 documentation
- Deprecated: The "error" and "progress" fields in streaming responses for
endpoints that return a JSON progress response, such as
POST /images/create,POST /images/{name}/push, andPOST /buildare deprecated. These fields were marked deprecated in API v1.4 (docker v0.6.0) and API v1.8 (docker v0.7.1) respectively, but still returned. These fields will be left empty or will be omitted in a future API version. Users should use the information in theerrorDetailandprogressDetailfields instead. - Deprecated: The "allow-nondistributable-artifacts" daemon configuration is
deprecated and enabled by default. The
AllowNondistributableArtifactsCIDRsandAllowNondistributableArtifactsHostnamesfields in theRegistryConfigstruct in theGET /inforesponse will now always benulland will be omitted in API v1.49. - Deprecated: The
BridgeNfIptablesandBridgeNfIp6tablesfields in theGET /inforesponse are now always befalseand will be omitted in API v1.49. The netfilter module is now loaded on-demand, and no longer during daemon startup, making these fields obsolete. GET /images/{name}/historynow supports aplatformparameter (JSON encoded OCI Platform type) that allows to specify a platform to show the history of.POST /images/{name}/loadandGET /images/{name}/getnow support aplatformparameter (JSON encoded OCI Platform type) that allows to specify a platform to load/save. Not passing this parameter will result in loading/saving the full multi-platform image.POST /containers/createnow includes a warning in the response when setting the container-wideConfig.VolumeDriveroption in combination with volumes defined throughMountsbecause theVolumeDriveroption has no effect on those volumes. This warning was previously generated by the CLI, but now moved to the daemon so that other clients can also get this warning.POST /containers/createnow supportsMountof typeimagefor mounting an image inside a container.- Deprecated: The
ContainerdCommit.Expected,RuncCommit.Expected, andInitCommit.Expectedfields in theGET /infoendpoint are deprecated and will be omitted in API v1.49. SysctlsinHostConfig(top level--sysctlsettings) foreth0are no longer migrated toDriverOpts, as described in the changes for v1.46.GET /images/jsonandGET /images/{name}/jsonresponses now includeDescriptorfield, which contains an OCI descriptor of the image target. The new field will only be populated if the daemon provides a multi-platform image store. WARNING: This is experimental and may change at any time without any backward compatibility.GET /images/{name}/jsonresponse now will return theManifestsfield containing information about the sub-manifests contained in the image index. This includes things like platform-specific manifests and build attestations. The new field will only be populated if the request also sets themanifestsquery parameter totrue. This acts the same as in theGET /images/jsonendpoint. WARNING: This is experimental and may change at any time without any backward compatibility.GET /containers/{name}/jsonnow returns anImageManifestDescriptorfield containing the OCI descriptor of the platform-specific image manifest of the image that was used to create the container. This field is only populated if the daemon provides a multi-platform image store.POST /networks/createnow has anEnableIPv4field. Setting it tofalsedisables IPv4 IPAM for the network. It can only be set tofalseif the daemon has experimental features enabled.GET /networks/{id}now returns anEnableIPv4field showing whether the network has IPv4 IPAM enabled.POST /networks/{id}/connectandPOST /containers/createnow accept aGwPriorityfield inEndpointsConfig. This value is used to determine which network endpoint provides the default gateway for the container. The endpoint with the highest priority is selected. If multiple endpoints have the same priority, endpoints are sorted lexicographically by their network name, and the one that sorts first is picked.GET /containers/jsonnow returns aGwPriorityfield inNetworkSettingsfor each network endpoint.- API debug endpoints (
GET /debug/vars,GET /debug/pprof/,GET /debug/pprof/cmdline,GET /debug/pprof/profile,GET /debug/pprof/symbol,GET /debug/pprof/trace,GET /debug/pprof/{name}) are now also accessible through the versioned-API paths (/v<API-version>/<endpoint>). POST /build/prunerenameskeep-bytestoreserved-spaceand now supports additional prune parametersmax-used-spaceandmin-free-space.GET /containers/jsonnow returns anImageManifestDescriptorfield matching the same field in/containers/{name}/json. This field is only populated if the daemon provides a multi-platform image store.
v1.47 API changes
Docker Engine API v1.47 documentation
GET /images/jsonresponse now includesManifestsfield, which contains information about the sub-manifests included in the image index. This includes things like platform-specific manifests and build attestations. The new field will only be populated if the request also sets themanifestsquery parameter totrue. WARNING: This is experimental and may change at any time without any backward compatibility.GET /infono longer includes warnings whenbridge-nf-call-iptablesorbridge-nf-call-ip6tablesare disabled when the daemon was started. Thebr_netfiltermodule is now attempted to be loaded when needed, making those warnings inaccurate. This change is not versioned, and affects all API versions if the daemon has this patch.
v1.46 API changes
Docker Engine API v1.46 documentation
GET /infonow includes aContainerdfield containing information about the location of the containerd API socket and containerd namespaces used by the daemon to run containers and plugins.POST /containers/createfieldNetworkingConfig.EndpointsConfig.DriverOpts, andPOST /networks/{id}/connectfieldEndpointsConfig.DriverOpts, now support labelcom.docker.network.endpoint.sysctlsfor setting per-interface sysctls. The value is a comma separated list of sysctl assignments, the interface name must be "IFNAME". For example, to setnet.ipv4.config.eth0.log_martians=1, usenet.ipv4.config.IFNAME.log_martians=1. In API versions up-to 1.46, top level--sysctlsettings foreth0will be migrated toDriverOptswhen possible. This automatic migration will be removed in a future release.GET /containers/jsonnow returns the annotations of containers.POST /images/{name}/pushnow supports aplatformparameter (JSON encoded OCI Platform type) that allows selecting a specific platform manifest from the multi-platform image.POST /containers/createnow takesOptionsas part ofHostConfig.Mounts.TmpfsOptionsto set options for tmpfs mounts.POST /services/createnow takesOptionsas part ofContainerSpec.Mounts.TmpfsOptions, to set options for tmpfs mounts.GET /eventsnow supports imagecreateevent that is emitted when a new image is built regardless if it was tagged or not.
Deprecated Config fields in GET /images/{name}/json response
The Config field returned by this endpoint (used for "image inspect") returns
additional fields that are not part of the image's configuration and not part of
the Docker Image Spec and the OCI Image Spec.
These additional fields are included in the response, due to an implementation detail, where the api/types.ImageInspec type used for the response is using the container.Config type.
The container.Config type is a superset of the image config, and while the image's Config is used as a template for containers created from the image, the additional fields are set at runtime (from options passed when creating the container) and not taken from the image Config.
These fields are never set (and always return the default value for the type), but are not omitted in the response when left empty. As these fields were not intended to be part of the image configuration response, they are deprecated, and will be removed from the API.
The following fields are currently included in the API response, but are not part of the underlying image's Config, and deprecated:
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(already omitted unless set)MacAddress(already omitted unless set)StopTimeout(already omitted unless set)
POST /services/createandPOST /services/{id}/updatenow support OomScoreAdj
v1.45 API changes
Docker Engine API v1.45 documentation
POST /containers/createnow supportsVolumeOptions.Subpathwhich allows a subpath of a named volume to be mounted.POST /images/searchwill always assume afalsevalue for theis-automatedfield. Consequently, searching foris-automated=truewill yield no results, whileis-automated=falsewill be a no-op.GET /images/{name}/jsonno longer includes theContainerandContainerConfigfields. To access image configuration, useConfigfield instead.- The
Aliasesfield returned in calls toGET /containers/{name:.*}/jsonno longer contains the short container ID, but instead will reflect exactly the values originally submitted to thePOST /containers/createendpoint. The newly introducedDNSNamesshould now be used instead when short container IDs are needed.
v1.44 API changes
Docker Engine API v1.44 documentation
- GET
/images/jsonnow accepts anuntilfilter. This accepts a timestamp and lists all images created before it. The<timestamp>can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g.10m,1h30m) computed relative to the daemon machine’s time. This change is not versioned, and affects all API versions if the daemon has this patch. - The
VirtualSizefield in theGET /images/{name}/json,GET /images/json, andGET /system/dfresponses is now omitted. Use theSizefield instead, which contains the same information. - Deprecated: The
is_automatedfield in theGET /images/searchresponse has been deprecated and will always be set to false in the future because Docker Hub is deprecating theis_automatedfield in its search API. The deprecation is not versioned, and applies to all API versions. - Deprecated: The
is-automatedfilter for theGET /images/searchendpoint. Theis_automatedfield has been deprecated by Docker Hub's search API. Consequently, searching foris-automated=truewill yield no results. The deprecation is not versioned, and applies to all API versions. - Read-only bind mounts are now made recursively read-only on kernel >= 5.12
with runtimes which support the feature.
POST /containers/create,GET /containers/{id}/json, andGET /containers/jsonnow supportsBindOptions.ReadOnlyNonRecursiveandBindOptions.ReadOnlyForceRecursiveto customize the behavior. POST /containers/createnow accepts aHealthConfig.StartIntervalto set the interval for health checks during the start period.GET /infonow includes aCDISpecDirsfield indicating the configured CDI specifications directories. The use of the applied setting requires the daemon to have experimental enabled, and for non-experimental daemons an empty list is always returned.POST /networks/createnow returns a 400 if theIPAMConfighas invalid values. Note that this change is unversioned and applied to all API versions on daemon that support version 1.44.POST /networks/createwith a duplicated name now fails systematically. As such, theCheckDuplicatefield is now deprecated. Note that this change is unversioned and applied to all API versions on daemon that support version 1.44.POST /containers/createnow accepts multipleEndpointSettingsinNetworkingConfig.EndpointSettings.POST /containers/createandPOST /networks/{id}/connectwill now catch validation errors that were previously only returned duringPOST /containers/{id}/start. These endpoints will also return the full set of validation errors they find, instead of returning only the first one. Note that this change is unversioned and applies to all API versions.POST /services/createandPOST /services/{id}/updatenow acceptSeccompandAppArmorfields in theContainerSpec.Privilegesobject. This allows some configuration of Seccomp and AppArmor in Swarm services.- A new endpoint-specific
MacAddressfield has been added toNetworkSettings.EndpointSettingsonPOST /containers/create, and toEndpointConfigonPOST /networks/{id}/connect. The container-wideMacAddressfield inConfig, onPOST /containers/create, is now deprecated. - The field
Networksin thePOST /services/createandPOST /services/{id}/updaterequests is now deprecated. You should instead use the fieldTaskTemplate.Networks. - The
ContainerandContainerConfigfields in theGET /images/{name}/jsonresponse are deprecated and will no longer be included in API v1.45. GET /infonow includesstatusproperties inRuntimes.- A new field named
DNSNamesand containing all non-fully qualified DNS names a container takes on a specific network has been added toGET /containers/{name:.*}/json. - The
Aliasesfield returned in calls toGET /containers/{name:.*}/jsonin v1.44 and older versions contains the short container ID. This will change in the next API version, v1.45. Starting with that API version, this specific value will be removed from theAliasesfield such that this field will reflect exactly the values originally submitted to thePOST /containers/createendpoint. The newly introducedDNSNamesshould now be used instead. - The fields
HairpinMode,LinkLocalIPv6Address,LinkLocalIPv6PrefixLen,SecondaryIPAddresses,SecondaryIPv6Addressesavailable inNetworkSettingswhen callingGET /containers/{id}/jsonare deprecated and will be removed in a future release. You should instead look for the default network inNetworkSettings.Networks. GET /images/{id}/jsonomits theCreatedfield (previously it was0001-01-01T00:00:00Z) if theCreatedfield is missing from the image config.
v1.43 API changes
Docker Engine API v1.43 documentation
POST /containers/createnow acceptsAnnotationsas part ofHostConfig. Can be used to attach arbitrary metadata to the container, which will also be passed to the runtime when the container is started.GET /images/jsonno longer includes hardcoded<none>:<none>and<none>@<none>inRepoTagsandRepoDigestsfor untagged images. In such cases, empty arrays will be produced instead.- The
VirtualSizefield in theGET /images/{name}/json,GET /images/json, andGET /system/dfresponses is deprecated and will no longer be included in API v1.44. Use theSizefield instead, which contains the same information. GET /infonow includesno-new-privilegesin theSecurityOptionsstring list when this option is enabled globally. This change is not versioned, and affects all API versions if the daemon has this patch.
v1.42 API changes
Docker Engine API v1.42 documentation
Removed the
BuilderSizefield on theGET /system/dfendpoint. This field was introduced in API 1.31 as part of an experimental feature, and no longer used since API 1.40. Use fieldBuildCacheinstead to track storage used by the builder component.POST /containers/{id}/stopandPOST /containers/{id}/restartnow accept asignalquery parameter, which allows overriding the container's default stop- signal.GET /images/jsonnow accepts query parametershared-size. When settrue, images returned will includeSharedSize, which provides the size on disk shared with other images present on the system.GET /system/dfnow accepts query parametertype. When set, computes and returns data only for the specified object type. The parameter can be specified multiple times to select several object types. Supported values are:container,image,volume,build-cache.GET /system/dfcan now be used concurrently. If a request is made while a previous request is still being processed, the request will receive the result of the already running calculation, once completed. Previously, an error (a disk usage operation is already running) would be returned in this situation. This change is not versioned, and affects all API versions if the daemon has this patch.The
POST /images/createnow supports both the operating system and architecture that is passed through theplatformquery parameter when using thefromSrcoption to import an image from an archive. Previously, only the operating system was used and the architecture was ignored. If noplatformoption is set, the host's operating system and architecture as used as default. This change is not versioned, and affects all API versions if the daemon has this patch.The
POST /containers/{id}/waitendpoint now returns a400status code if an invalidconditionis provided (on API 1.30 and up).Removed the
KernelMemoryfield from thePOST /containers/createandPOST /containers/{id}/updateendpoints, any value it is set to will be ignored on API versionv1.42and up. Older API versions still accept this field, but may take no effect, depending on the kernel version and OCI runtime in use.GET /containers/{id}/jsonnow omits theKernelMemoryandKernelMemoryTCPif they are not set.GET /infonow omits theKernelMemoryandKernelMemoryTCPif they are not supported by the host or host's configuration (if cgroups v2 are in use).GET /_pingandHEAD /_pingnow returnBuilder-Versionby default. This header contains the default builder to use, and is a recommendation as advertised by the daemon. However, it is up to the client to choose which builder to use.The default value on Linux is version "2" (BuildKit), but the daemon can be configured to recommend version "1" (classic Builder). Windows does not yet support BuildKit for native Windows images, and uses "1" (classic builder) as a default.
This change is not versioned, and affects all API versions if the daemon has this patch.
GET /_pingandHEAD /_pingnow return aSwarmheader, which allows a client to detect if Swarm is enabled on the daemon, without having to call additional endpoints. This change is not versioned, and affects all API versions if the daemon has this patch. Clients must consider this header "optional", and fall back to using other endpoints to get this information if the header is not present.The
Swarmheader can contain one of the following values:- "inactive"
- "pending"
- "error"
- "locked"
- "active/worker"
- "active/manager"
POST /containers/createfor Windows containers now accepts a new syntax inHostConfig.Resources.Devices.PathOnHost. As well as the existingclass/<GUID>syntax,<IDType>://<ID>is now recognised. Support for specific<IDType>values depends on the underlying implementation and Windows version. This change is not versioned, and affects all API versions if the daemon has this patch.GET /containers/{id}/attach,GET /exec/{id}/start,GET /containers/{id}/logsGET /services/{id}/logsandGET /tasks/{id}/logsnow set Content-Type header toapplication/vnd.docker.multiplexed-streamwhen a multiplexed stdout/stderr stream is sent to client,application/vnd.docker.raw-streamotherwise.POST /volumes/createnow accepts a newClusterVolumeSpecto create a cluster volume (CNI). This option can only be used if the daemon is a Swarm manager. The Volume response on creation now also can contain aClusterVolumefield with information about the created volume.The
BuildCache.Parentfield, as returned byGET /system/dfis deprecated and is now omitted. API versions before v1.42 continue to include this field.GET /system/dfnow includes a newParentsfield, for "build-cache" records, which contains a list of parent IDs for the build-cache record.Volume information returned by
GET /volumes/{name},GET /volumesandGET /system/dfcan now contain aClusterVolumeif the volume is a cluster volume (requires the daemon to be a Swarm manager).The
Volumetype, as returned byAdded newClusterVolume` fieldsAdded a new
PUT /volumes{name}endpoint to update cluster volumes (CNI). Cluster volumes are only supported if the daemon is a Swarm manager.GET /containers/{name}/attach/wsendpoint now acceptsstdin,stdoutandstderrquery parameters to only attach to configured streams.NOTE: These parameters were documented before in older API versions, but not actually supported. API versions before v1.42 continue to ignore these parameters and default to attaching to all streams. To preserve the pre-v1.42 behavior, set all three query parameters (
?stdin=1,stdout=1,stderr=1).POST /containers/createon Linux now respects theHostConfig.ConsoleSizeproperty. Container is immediately created with the desired terminal size and clients no longer need to set the desired size on their own.POST /containers/createallow to setCreateMountpointfor host path to be created if missing. This brings parity withBindsPOST /containers/createrejects request if BindOptions|VolumeOptions|TmpfsOptions is set with a non-matching mount Type.POST /containers/{id}/execnow accepts an optionalConsoleSizeparameter. It allows to set the console size of the executed process immediately when it's created.POST /volumes/prunewill now only prune "anonymous" volumes (volumes which were not given a name) by default. A new filter parameterallcan be set to a truth-y value (true,1) to get the old behavior.
v1.41 API changes
Docker Engine API v1.41 documentation
GET /eventsnow returnspruneevents after pruning resources have completed. Prune events are returned forcontainer,network,volume,image, andbuilder, and have areclaimedattribute, indicating the amount of space reclaimed (in bytes).GET /infonow returns aCgroupVersionfield, containing the cgroup version.GET /infonow returns aDefaultAddressPoolsfield, containing a list of custom default address pools for local networks, which can be specified in thedaemon.jsonfile or--default-address-pooldockerd option.POST /services/createandPOST /services/{id}/updatenow supportsBindOptions.NonRecursive.The
ClusterStoreandClusterAdvertisefields inGET /infoare deprecated and are now omitted if they contain an empty value. This change is not versioned, and affects all API versions if the daemon has this patch.The
filter(singular) query parameter, which was deprecated in favor of thefiltersoption in Docker 1.13, has now been removed from theGET /images/jsonendpoint. The parameter remains available when using API version 1.40 or below.GET /servicesnow returnsCapAddandCapDropas part of theContainerSpec.GET /services/{id}now returnsCapAddandCapDropas part of theContainerSpec.POST /services/createnow acceptsCapAddandCapDropas part of theContainerSpec.POST /services/{id}/updatenow acceptsCapAddandCapDropas part of theContainerSpec.GET /tasksnow returnsCapAddandCapDropas part of theContainerSpec.GET /tasks/{id}now returnsCapAddandCapDropas part of theContainerSpec.GET /servicesnow returnsPidsinTaskTemplate.Resources.Limits.GET /services/{id}now returnsPidsinTaskTemplate.Resources.Limits.POST /services/createnow acceptsPidsinTaskTemplate.Resources.Limits.POST /services/{id}/updatenow acceptsPidsinTaskTemplate.Resources.Limitsto limit the maximum number of PIDs.GET /tasksnow returnsPidsinTaskTemplate.Resources.Limits.GET /tasks/{id}now returnsPidsinTaskTemplate.Resources.Limits.POST /containers/createnow accepts aplatformquery parameter in the formatos[/arch[/variant]].When set, the daemon checks if the requested image is present in the local image cache with the given OS and Architecture, and otherwise returns a
404status.If the option is not set, the host's native OS and Architecture are used to look up the image in the image cache. However, if no platform is passed and the given image does exist in the local image cache, but its OS or architecture do not match, the container is created with the available image, and a warning is added to the
Warningsfield in the response, for example;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/createon Linux now accepts theHostConfig.CgroupnsModeproperty. Set the property tohostto create the container in the daemon's cgroup namespace, orprivateto create the container in its own private cgroup namespace. The per-daemon default ishost, and can be changed by using theCgroupNamespaceModedaemon configuration parameter.GET /infonow returns anOSVersionfield, containing the operating system's version. This change is not versioned, and affects all API versions if the daemon has this patch.GET /infono longer returns theSystemStatusfield if it does not have a value set. This change is not versioned, and affects all API versions if the daemon has this patch.GET /servicesnow accepts query parameterstatus. When settrue, services returned will includeServiceStatus, which provides Desired, Running, and Completed task counts for the service.GET /servicesmay now includeReplicatedJoborGlobalJobas theModein aServiceSpec.GET /services/{id}may now includeReplicatedJoborGlobalJobas theModein aServiceSpec.POST /services/createnow acceptsReplicatedJob orGlobalJobas theModein theServiceSpec.POST /services/{id}/updateaccepts updating the fields of theReplicatedJobobject in theServiceSpec.Mode. The service mode still cannot be changed, however.GET /servicesnow includesJobStatuson Services with modeReplicatedJoborGlobalJob.GET /services/{id}now includesJobStatuson Services with modeReplicatedJoborGlobalJob.GET /tasksnow includesJobIterationon Tasks spawned from a job-mode service.GET /tasks/{id}now includesJobIterationon the task if spawned from a job-mode service.GET /containers/{id}/statsnow accepts a query param (one-shot) which, when used withstream=falsefetches a single set of stats instead of waiting for two collection cycles to have 2 CPU stats over a 1 second period.The
KernelMemoryfield inHostConfig.Resourcesis now deprecated.The
KernelMemoryfield inInfois now deprecated.GET /servicesnow returnsUlimitsas part ofContainerSpec.GET /services/{id}now returnsUlimitsas part ofContainerSpec.POST /services/createnow acceptsUlimitsas part ofContainerSpec.POST /services/{id}/updatenow acceptsUlimitsas part ofContainerSpec.
v1.40 API changes
Docker Engine API v1.40 documentation
- The
/_pingendpoint can now be accessed both usingGETorHEADrequests. when accessed using aHEADrequest, all headers are returned, but the body is empty (Content-Length: 0). This change is not versioned, and affects all API versions if the daemon has this patch. Clients are recommended to try usingHEAD, but fallback toGETif theHEADrequests fails. GET /_pingandHEAD /_pingnow setCache-ControlandPragmaheaders to prevent the result from being cached. This change is not versioned, and affects all API versions if the daemon has this patch.GET /servicesnow returnsSysctlsas part of theContainerSpec.GET /services/{id}now returnsSysctlsas part of theContainerSpec.POST /services/createnow acceptsSysctlsas part of theContainerSpec.POST /services/{id}/updatenow acceptsSysctlsas part of theContainerSpec.POST /services/createnow acceptsConfigas part ofContainerSpec.Privileges.CredentialSpec.POST /services/{id}/updatenow acceptsConfigas part ofContainerSpec.Privileges.CredentialSpec.POST /services/createnow includesRuntimeas an option inContainerSpec.ConfigsPOST /services/{id}/updatenow includesRuntimeas an option inContainerSpec.ConfigsGET /tasksnow returnsSysctlsas part of theContainerSpec.GET /tasks/{id}now returnsSysctlsas part of theContainerSpec.GET /networksnow supports adanglingfilter type. When set totrue(or1), the endpoint returns all networks that are not in use by a container. When set tofalse(or0), only networks that are in use by one or more containers are returned.GET /nodesnow supports a filter typenode.labelfilter to filter nodes based on the node.label. The format of the label filter isnode.label=<key>/node.label=<key>=<value>to return those with the specified labels, ornode.label!=<key>/node.label!=<key>=<value>to return those without the specified labels.POST /containers/createnow accepts afluentd-asyncoption inHostConfig.LogConfig.Configwhen using the Fluentd logging driver. This option deprecates thefluentd-async-connectoption, which remains functional, but will be removed in a future release. Users are encouraged to use thefluentd-asyncoption going forward. This change is not versioned, and affects all API versions if the daemon has this patch.POST /containers/createnow accepts afluentd-request-ackoption inHostConfig.LogConfig.Configwhen using the Fluentd logging driver. If enabled, the Fluentd logging driver sends the chunk option with a unique ID. The server will respond with an acknowledgement. This option improves the reliability of the message transmission. This change is not versioned, and affects all API versions if the daemon has this patch.POST /containers/create,GET /containers/{id}/json, andGET /containers/jsonnow supportsBindOptions.NonRecursive.POST /swarm/initnow accepts aDataPathPortproperty to set data path port number.GET /infonow returns information aboutDataPathPortthat is currently used in swarmGET /infonow returnsPidsLimitboolean to indicate if the host kernel has PID limit support enabled.GET /infonow includesname=rootlessinSecurityOptionswhen the daemon is running in rootless mode. This change is not versioned, and affects all API versions if the daemon has this patch.GET /infonow returnsnoneasCgroupDriverwhen the daemon is running in rootless mode. This change is not versioned, and affects all API versions if the daemon has this patch.POST /containers/createnow acceptsDeviceRequestsas part ofHostConfig. Can be used to set Nvidia GPUs.GET /swarmendpoint now returns DataPathPort infoPOST /containers/createnow takesKernelMemoryTCPfield to set hard limit for kernel TCP buffer memory.GET /servicenow returnsMaxReplicasas part of thePlacement.GET /service/{id}now returnsMaxReplicasas part of thePlacement.POST /service/createandPOST /services/(id or name)/updatenow take the fieldMaxReplicasas part of the servicePlacement, allowing to specify maximum replicas per node for the service.POST /containers/createon Linux now creates a container withHostConfig.IpcMode=privateby default, if IpcMode is not explicitly specified. The per-daemon default can be changed back toshareableby usingDefaultIpcModedaemon configuration parameter.POST /containers/{id}/updatenow accepts aPidsLimitfield to tune a container's PID limit. Set0or-1for unlimited. Leavenullto not change the current value.POST /buildnow acceptsoutputskey for configuring build outputs when using BuildKit mode.
V1.39 API changes
Docker Engine API v1.39 documentation
GET /infonow returns an empty string, instead of<unknown>forKernelVersionandOperatingSystemif the daemon was unable to obtain this information.GET /infonow returns information about the product license, if a license has been applied to the daemon.GET /infonow returns aWarningsfield, containing warnings and informational messages about missing features, or issues related to the daemon configuration.POST /swarm/initnow accepts aDefaultAddrPoolproperty to set global scope default address poolPOST /swarm/initnow accepts aSubnetSizeproperty to set global scope networks by giving the length of the subnet masks for every such networkPOST /session(added in V1.31 is no longer experimental. This endpoint can be used to run interactive long-running protocols between the client and the daemon.
V1.38 API changes
Docker Engine API v1.38 documentation
GET /tasksandGET /tasks/{id}now return aNetworkAttachmentSpecfield, containing theContainerIDfor non-service containers connected to "attachable" swarm-scoped networks.
v1.37 API changes
Docker Engine API v1.37 documentation
POST /containers/createandPOST /services/createnow supports exposing SCTP ports.POST /configs/createandPOST /configs/{id}/createnow accept aTemplatingdriver.GET /configsandGET /configs/{id}now return theTemplatingdriver of the config.POST /secrets/createandPOST /secrets/{id}/createnow accept aTemplatingdriver.GET /secretsandGET /secrets/{id}now return theTemplatingdriver of the secret.
v1.36 API changes
Docker Engine API v1.36 documentation
Get /eventsnow returnexec_dieevent when an exec process terminates.
v1.35 API changes
Docker Engine API v1.35 documentation
POST /services/createandPOST /services/(id)/updatenow accepts anIsolationfield on container spec to set the Isolation technology of the containers running the service (default,process, orhyperv). This configuration is only used for Windows containers.GET /containers/(name)/logsnow supports an additional query parameter:until, which returns log lines that occurred before the specified timestamp.POST /containers/{id}/execnow accepts aWorkingDirproperty to set the work-dir for the exec process, independent of the container's work-dir.Get /versionnow returns aPlatform.Namefield, which can be used by products using Moby as a foundation to return information about the platform.Get /versionnow returns aComponentsfield, which can be used to return information about the components used. Information about the engine itself is now included as a "Component" version, and contains all information from the top-levelVersion,GitCommit,APIVersion,MinAPIVersion,GoVersion,Os,Arch,BuildTime,KernelVersion, andExperimentalfields. Going forward, the information from theComponentssection is preferred over their top-level counterparts.
v1.34 API changes
Docker Engine API v1.34 documentation
POST /containers/(name)/wait?condition=removednow also also returns in case of container removal failure. A pointer to a structure namedErroradded to the response JSON in order to indicate a failure. IfErrorisnull, container removal has succeeded, otherwise the test of an error message indicating why container removal has failed is available fromError.Messagefield.
v1.33 API changes
Docker Engine API v1.33 documentation
GET /eventsnow supports filtering 4 more kinds of events:config,node,secretandservice.
v1.32 API changes
Docker Engine API v1.32 documentation
POST /images/createnow accepts aplatformparameter in the form ofos[/arch[/variant]].POST /containers/createnow accepts additional values for theHostConfig.IpcModeproperty. New values areprivate,shareable, andnone.DELETE /networks/{id or name}fixed issue where anameequal to another network's name was able to mask thatid. If both a network with the given name exists, and a network with the given id, the network with the given id is now deleted. This change is not versioned, and affects all API versions if the daemon has this patch.
v1.31 API changes
Docker Engine API v1.31 documentation
DELETE /secrets/(name)now returns status code 404 instead of 500 when the secret does not exist.POST /secrets/createnow returns status code 409 instead of 500 when creating an already existing secret.POST /secrets/createnow accepts aDriverstruct, allowing theNameand driver-specificOptionsto be passed to store a secrets in an external secrets store. TheDriverproperty can be omitted if the default (internal) secrets store is used.GET /secrets/(id)andGET /secretsnow return aDriverstruct, containing theNameand driver-specificOptionsof the external secrets store used to store the secret. TheDriverproperty is omitted if no external store is used.POST /secrets/(name)/updatenow returns status code 400 instead of 500 when updating a secret's content which is not the labels.POST /nodes/(name)/updatenow returns status code 400 instead of 500 when demoting last node fails.GET /networks/(id or name)now takes an optional query parameterscopethat will filter the network based on the scope (local,swarm, orglobal).POST /sessionis a new endpoint that can be used for running interactive long-running protocols between client and the daemon. This endpoint is experimental and only available if the daemon is started with experimental features enabled.GET /images/(name)/getnow includes anImageMetadatafield which contains image metadata that is local to the engine and not part of the image config.POST /services/createnow accepts aPluginSpecwhenTaskTemplate.Runtimeis set topluginGET /eventsnow supports config eventscreate,updateandremovethat are emitted when users create, update or remove a configGET /volumes/andGET /volumes/{name}now return aCreatedAtfield, containing the date/time the volume was created. This field is omitted if the creation date/time for the volume is unknown. For volumes with scope "global", this field represents the creation date/time of the local instance of the volume, which may differ from instances of the same volume on different nodes.GET /system/dfnow returns aCreatedAtfield forVolumes. Refer to the/volumes/endpoint for a description of this field.
v1.30 API changes
Docker Engine API v1.30 documentation
GET /infonow returns the list of supported logging drivers, including plugins.GET /infoandGET /swarmnow returns the cluster-wide swarm CA info if the node is in a swarm: the cluster root CA certificate, and the cluster TLS leaf certificate issuer's subject and public key. It also displays the desired CA signing certificate, if any was provided as part of the spec.POST /build/now (when not silent) produces anAuxmessage in the JSON output stream with payloadtypes.BuildResultfor each image produced. The final such message will reference the image resulting from the build.GET /nodesandGET /nodes/{id}now returns additional information about swarm TLS info if the node is part of a swarm: the trusted root CA, and the issuer's subject and public key.GET /distribution/(name)/jsonis a new endpoint that returns a JSON output stream with payloadtypes.DistributionInspectfor an image name. It includes a descriptor with the digest, and supported platforms retrieved from directly contacting the registry.POST /swarm/updatenow accepts 3 additional parameters as part of the swarm spec's CA configuration; the desired CA certificate for the swarm, the desired CA key for the swarm (if not using an external certificate), and an optional parameter to force swarm to generate and rotate to a new CA certificate/key pair.POST /service/createandPOST /services/(id or name)/updatenow take the fieldPlatformsas part of the servicePlacement, allowing to specify platforms supported by the service.POST /containers/(name)/waitnow accepts aconditionquery parameter to indicate which state change condition to wait for. Also, response headers are now returned immediately to acknowledge that the server has registered a wait callback for the client.POST /swarm/initnow accepts aDataPathAddrproperty to set the IP-address or network interface to use for data trafficPOST /swarm/joinnow accepts aDataPathAddrproperty to set the IP-address or network interface to use for data trafficGET /eventsnow supports service, node and secret events which are emitted when users create, update and remove service, node and secretGET /eventsnow supports network remove event which is emitted when users remove a swarm scoped networkGET /eventsnow supports a filter typescopein which supported value could be swarm and localPUT /containers/(name)/archivenow accepts acopyUIDGIDparameter to allow copy UID/GID maps to dest file or dir.
v1.29 API changes
Docker Engine API v1.29 documentation
DELETE /networks/(name)now allows to remove the ingress network, the one used to provide the routing-mesh.POST /networks/createnow supports creating the ingress network, by specifying anIngressboolean field. As of now this is supported only when using the overlay network driver.GET /networks/(name)now returns anIngressfield showing whether the network is the ingress one.GET /networks/now supports ascopefilter to filter networks based on the network mode (swarm,global, orlocal).POST /containers/create,POST /service/createandPOST /services/(id or name)/updatenow takes the fieldStartPeriodas a part of theHealthConfigallowing for specification of a period during which the container should not be considered unhealthy even if health checks do not pass.GET /services/(id)now accepts aninsertDefaultsquery-parameter to merge default values into the service inspect output.POST /containers/prune,POST /images/prune,POST /volumes/prune, andPOST /networks/prunenow support alabelfilter to filter containers, images, volumes, or networks based on the label. The format of the label filter could belabel=<key>/label=<key>=<value>to remove those with the specified labels, orlabel!=<key>/label!=<key>=<value>to remove those without the specified labels.POST /services/createnow acceptsPrivilegesas part ofContainerSpec. Privileges currently includeCredentialSpecandSELinuxContext.
v1.28 API changes
Docker Engine API v1.28 documentation
POST /containers/createnow includes aConsistencyfield to specify the consistency level for eachMount, with possible valuesdefault,consistent,cached, ordelegated.GET /containers/createnow takes aDeviceCgroupRulesfield inHostConfigallowing to set custom device cgroup rules for the created container.- Optional query parameter
verboseforGET /networks/(id or name)will now list all services with all the tasks, including the non-local tasks on the given network. GET /containers/(id or name)/attach/wsnow returns WebSocket in binary frame format for API version >= v1.28, and returns WebSocket in text frame format for API version< v1.28, for the purpose of backward-compatibility.GET /networksis optimised only to return list of all networks and network specific information. List of all containers attached to a specific network is removed from this API and is only available using the network specificGET /networks/{network-id}.GET /containers/jsonnow supportspublishandexposefilters to filter containers that expose or publish certain ports.POST /services/createandPOST /services/(id or name)/updatenow accept theReadOnlyparameter, which mounts the container's root filesystem as read only.POST /buildnow acceptsextrahostsparameter to specify a host to ip mapping to use during the build.POST /services/createandPOST /services/(id or name)/updatenow accept arollbackvalue forFailureAction.POST /services/createandPOST /services/(id or name)/updatenow accept an optionalRollbackConfigobject which specifies rollback options.GET /servicesnow supports amodefilter to filter services based on the service mode (eitherglobalorreplicated).POST /containers/(name)/updatenow supports updatingNanoCpusthat represents CPU quota in units of 10-9 CPUs.POST /plugins/{name}/disablenow accepts aforcequery-parameter to disable a plugin even if still in use.
v1.27 API changes
Docker Engine API v1.27 documentation
GET /containers/(id or name)/statsnow includes anonline_cpusfield in bothprecpu_statsandcpu_stats. If this field isnilthen for compatibility with older daemons the length of the correspondingcpu_usage.percpu_usagearray should be used.
v1.26 API changes
Docker Engine API v1.26 documentation
POST /plugins/(plugin name)/upgradeupgrade a plugin.
v1.25 API changes
Docker Engine API v1.25 documentation
- The API version is now required in all API calls. Instead of just requesting, for example, the URL
/containers/json, you must now request/v1.25/containers/json. GET /versionnow returnsMinAPIVersion.POST /buildacceptsnetworkmodeparameter to specify network used during build.GET /images/(name)/jsonnow returnsOsVersionif populatedGET /images/(name)/jsonno longer contains theRootFS.BaseLayerfield. This field was used for Windows images that used a base-image that was pre-installed on the host (RootFS.Typelayers+base), which is no longer supported, and theRootFS.BaseLayerfield has been removed.GET /infonow returnsIsolation.POST /containers/createnow takesAutoRemovein HostConfig, to enable auto-removal of the container on daemon side when the container's process exits.GET /containers/jsonandGET /containers/(id or name)/jsonnow return"removing"as a value for theState.Statusfield if the container is being removed. Previously, "exited" was returned as status.GET /containers/jsonnow acceptsremovingas a valid value for thestatusfilter.GET /containers/jsonnow supports filtering containers byhealthstatus.DELETE /volumes/(name)now accepts aforcequery parameter to force removal of volumes that were already removed out of band by the volume driver plugin.POST /containers/create/andPOST /containers/(name)/updatenow validates restart policies.POST /containers/createnow validates IPAMConfig in NetworkingConfig, and returns error for invalid IPv4 and IPv6 addresses (--ipand--ip6indocker create/run).POST /containers/createnow takes aMountsfield inHostConfigwhich replacesBinds,Volumes, andTmpfs. note:Binds,Volumes, andTmpfsare still available and can be combined withMounts.POST /buildnow performs a preliminary validation of theDockerfilebefore starting the build, and returns an error if the syntax is incorrect. Note that this change is unversioned and applied to all API versions.POST /buildacceptscachefromparameter to specify images used for build cache.GET /networks/endpoint now correctly returns a list of all networks, instead of the default network if a trailing slash is provided, but nonameorid.DELETE /containers/(name)endpoint now returns an error ofremoval of container name is already in progresswith status code of 400, when container name is in a state of removal in progress.GET /containers/jsonnow supports ais-taskfilter to filter containers that are tasks (part of a service in swarm mode).POST /containers/createnow takesStopTimeoutfield.POST /services/createandPOST /services/(id or name)/updatenow acceptMonitorandMaxFailureRatioparameters, which control the response to failures during service updates.POST /services/(id or name)/updatenow accepts aForceUpdateparameter inside theTaskTemplate, which causes the service to be updated even if there are no changes which would ordinarily trigger an update.POST /services/createandPOST /services/(id or name)/updatenow return aWarningsarray.GET /networks/(name)now returns fieldCreatedin response to show network created time.POST /containers/(id or name)/execnow accepts anEnvfield, which holds a list of environment variables to be set in the context of the command execution.GET /volumes,GET /volumes/(name), andPOST /volumes/createnow return theOptionsfield which holds the driver specific options to use for when creating the volume.GET /exec/(id)/jsonnow returnsPid, which is the system pid for the exec'd process.POST /containers/pruneprunes stopped containers.POST /images/pruneprunes unused images.POST /volumes/pruneprunes unused volumes.POST /networks/pruneprunes unused networks.- Every API response now includes a
Docker-Experimentalheader specifying if experimental features are enabled (value can betrueorfalse). - Every API response now includes a
API-Versionheader specifying the default API version of the server. - The
hostConfigoption now accepts the fieldsCpuRealtimePeriodandCpuRtRuntimeto allocate cpu runtime to rt tasks whenCONFIG_RT_GROUP_SCHEDis enabled in the kernel. - The
SecurityOptionsfield within theGET /inforesponse now includesusernsif user namespaces are enabled in the daemon. GET /nodesandGET /node/(id or name)now returnAddras part of a node'sStatus, which is the address that that node connects to the manager from.- The
HostConfigfield now includesNanoCpusthat represents CPU quota in units of 10-9 CPUs. GET /infonow returns more structured information about security options.- The
HostConfigfield now includesCpuCountthat represents the number of CPUs available for execution by the container. Windows daemon only. POST /services/createandPOST /services/(id or name)/updatenow accept theTTYparameter, which allocate a pseudo-TTY in container.POST /services/createandPOST /services/(id or name)/updatenow accept theDNSConfigparameter, which specifies DNS related configurations in resolver configuration file (resolv.conf) throughNameservers,Search, andOptions.POST /services/createandPOST /services/(id or name)/updatenow supportnode.platform.archandnode.platform.osconstraints in the servicesTaskSpec.Placement.Constraintsfield.GET /networks/(id or name)now includes IP and name of all peers nodes for swarm mode overlay networks.GET /pluginslist plugins.POST /plugins/pull?name=<plugin name>pulls a plugin.GET /plugins/(plugin name)inspect a plugin.POST /plugins/(plugin name)/setconfigure a plugin.POST /plugins/(plugin name)/enableenable a plugin.POST /plugins/(plugin name)/disabledisable a plugin.POST /plugins/(plugin name)/pushpush a plugin.POST /plugins/create?name=(plugin name)create a plugin.DELETE /plugins/(plugin name)delete a plugin.POST /node/(id or name)/updatenow accepts bothidornameto identify the node to update.GET /images/jsonnow support areferencefilter.GET /secretsreturns information on the secrets.POST /secrets/createcreates a secret.DELETE /secrets/{id}removes the secretid.GET /secrets/{id}returns information on the secretid.POST /secrets/{id}/updateupdates the secretid.POST /services/(id or name)/updatenow accepts service name or prefix of service id as a parameter.POST /containers/createadded 2 built-in log-opts that work on all logging drivers,mode(blocking|non-blocking), andmax-buffer-size(e.g.2m) which enables a non-blocking log buffer.POST /containers/createnow takesHostConfig.Initfield to run an init inside the container that forwards signals and reaps processes.
v1.24 API changes
Docker Engine API v1.24 documentation
POST /containers/createnow takesStorageOptfield.GET /infonow returnsSecurityOptionsfield, showing ifapparmor,seccomp, orselinuxis supported.GET /infono longer returns theExecutionDriverproperty. This property was no longer used after integration with ContainerD in Docker 1.11.GET /networksnow supports filtering bylabelanddriver.GET /containers/jsonnow supports filtering containers bynetworkname or id.POST /containers/createnow takesIOMaximumBandwidthandIOMaximumIOpsfields. Windows daemon only.POST /containers/createnow returns an HTTP 400 "bad parameter" message if no command is specified (instead of an HTTP 500 "server error")GET /images/searchnow takes afiltersquery parameter.GET /eventsnow supports areloadevent that is emitted when the daemon configuration is reloaded.GET /eventsnow supports filtering by daemon name or ID.GET /eventsnow supports adetachevent that is emitted on detaching from container process.GET /eventsnow supports anexec_detachevent that is emitted on detaching from exec process.GET /images/jsonnow supports filterssinceandbefore.POST /containers/(id or name)/startno longer accepts aHostConfig.POST /images/(name)/tagno longer has aforcequery parameter.GET /images/searchnow supports maximum returned search resultslimit.POST /containers/{name:.*}/copyis now removed and errors out starting from this API version.- API errors are now returned as JSON instead of plain text.
POST /containers/createandPOST /containers/(id)/startallow you to configure kernel parameters (sysctls) for use in the container.POST /containers/<container ID>/execandPOST /exec/<exec ID>/startno longer expects a "Container" field to be present. This property was not used and is no longer sent by the docker client.POST /containers/create/now validates the hostname (should be a valid RFC 1123 hostname).POST /containers/create/HostConfig.PidModefield now acceptscontainer:<name|id>, to have the container join the PID namespace of an existing container.
v1.23 API changes
GET /containers/jsonreturns the state of the container, one ofcreated,restarting,running,paused,exitedordead.GET /containers/jsonreturns the mount points for the container.GET /networks/(name)now returns anInternalfield showing whether the network is internal or not.GET /networks/(name)now returns anEnableIPv6field showing whether the network has ipv6 enabled or not.POST /containers/(name)/updatenow supports updating container's restart policy.POST /networks/createnow supports enabling ipv6 on the network by setting theEnableIPv6field (doing this with a label will no longer work).GET /infonow returnsCgroupDriverfield showing what cgroup driver the daemon is using;cgroupfsorsystemd.GET /infonow returnsKernelMemoryfield, showing if "kernel memory limit" is supported.POST /containers/createnow takesPidsLimitfield, if the kernel is >= 4.3 and the pids cgroup is supported.GET /containers/(id or name)/statsnow returnspids_stats, if the kernel is >= 4.3 and the pids cgroup is supported.POST /containers/createnow allows you to override usernamespaces remapping and use privileged options for the container.POST /containers/createnow allows specifyingnocopyfor named volumes, which disables automatic copying from the container path to the volume.POST /authnow returns anIdentityTokenwhen supported by a registry.POST /containers/createwith bothHostnameandDomainnamefields specified will result in the container's hostname being set toHostname, rather thanHostname.Domainname.GET /volumesnow supports more filters, new added filters arenameanddriver.GET /containers/(id or name)/logsnow accepts adetailsquery parameter to stream the extra attributes that were provided to the containersLogOpts, such as environment variables and labels, with the logs.POST /images/loadnow returns progress information as a JSON stream, and has aquietquery parameter to suppress progress details.
v1.22 API changes
- The
HostConfig.LxcConffield has been removed, and is no longer available onPOST /containers/createandGET /containers/(id)/json. POST /container/(name)/updateupdates the resources of a container.GET /containers/jsonsupports filterisolationon Windows.GET /containers/jsonnow returns the list of networks of containers.GET /infoNow returnsArchitectureandOSTypefields, providing information about the host architecture and operating system type that the daemon runs on.GET /networks/(name)now returns aNamefield for each container attached to the network.GET /versionnow returns theBuildTimefield in RFC3339Nano format to make it consistent with other date/time values returned by the API.AuthConfignow supports aregistrytokenfor token based authenticationPOST /containers/createnow has a 4M minimum value limit forHostConfig.KernelMemory- Pushes initiated with
POST /images/(name)/pushand pulls initiated withPOST /images/createwill be cancelled if the HTTP connection making the API request is closed before the push or pull completes. POST /containers/createnow allows you to set a read/write rate limit for a device (in bytes per second or IO per second).GET /networksnow supports filtering byname,idandtype.POST /containers/createnow allows you to set the static IPv4 and/or IPv6 address for the container.POST /networks/(id)/connectnow allows you to set the static IPv4 and/or IPv6 address for the container.GET /infonow includes the number of containers running, stopped, and paused.POST /networks/createnow supports restricting external access to the network by setting theInternalfield.POST /networks/(id)/disconnectnow includes aForceoption to forcefully disconnect a container from networkGET /containers/(id)/jsonnow returns theNetworkIDof containers.POST /networks/createNow supports an options field in the IPAM config that provides options for custom IPAM plugins.GET /networks/{network-id}Now returns IPAM config options for custom IPAM plugins if any are available.GET /networks/<network-id>now returns subnets info for user-defined networks.GET /infocan now return aSystemStatusfield useful for returning additional information about applications that are built on top of engine.
v1.21 API changes
GET /volumeslists volumes from all volume drivers.POST /volumes/createto create a volume.GET /volumes/(name)get low-level information about a volume.DELETE /volumes/(name)remove a volume with the specified name.VolumeDriverwas moved fromconfigtoHostConfigto make the configuration portable.GET /images/(name)/jsonnow returns information about an image'sRepoTagsandRepoDigests.- The
configoption now accepts the fieldStopSignal, which specifies the signal to use to kill a container. GET /containers/(id)/statswill return networking information respectively for each interface.- The
HostConfigoption now includes theDnsOptionsfield to configure the container's DNS options. POST /buildnow optionally takes a serialized map of build-time variables.GET /eventsnow includes atimenanofield, in addition to the existingtimefield.GET /eventsnow supports filtering by image and container labels.GET /infonow lists engine version information and return the information ofCPUSharesandCpuset.GET /containers/jsonwill returnImageIDof the image used by container.POST /exec/(name)/startwill now return an HTTP 409 when the container is either stopped or paused.POST /containers/createnow takesKernelMemoryin HostConfig to specify kernel memory limit.GET /containers/(name)/jsonnow accepts asizeparameter. Setting this parameter to '1' returns container size information in theSizeRwandSizeRootFsfields.GET /containers/(name)/jsonnow returns aNetworkSettings.Networksfield, detailing network settings per network. This field deprecates theNetworkSettings.EndpointID,NetworkSettings.Gateway,NetworkSettings.GlobalIPv6Address,NetworkSettings.GlobalIPv6PrefixLenNetworkSettings.IPAddress,NetworkSettings.IPPrefixLen,NetworkSettings.IPv6Gateway,NetworkSettings.MacAddressfields, which are still returned for backward-compatibility, but will be removed in a future version.GET /exec/(id)/jsonnow returns aNetworkSettings.Networksfield, detailing networksettings per network. This field deprecates theNetworkSettings.Gateway,NetworkSettings.IPAddress,NetworkSettings.IPPrefixLen, andNetworkSettings.MacAddressfields, which are still returned for backward-compatibility, but will be removed in a future version.- The
HostConfigoption now includes theOomScoreAdjfield for adjusting the badness heuristic. This heuristic selects which processes the OOM killer kills under out-of-memory conditions.
v1.20 API changes
GET /containers/(id)/archiveget an archive of filesystem content from a container.PUT /containers/(id)/archiveupload an archive of content to be extracted to an existing directory inside a container's filesystem.POST /containers/(id)/copyis deprecated in favor of the abovearchiveendpoint which can be used to download files and directories from a container.- The
hostConfigoption now accepts the fieldGroupAdd, which specifies a list of additional groups that the container process will run as.
v1.19 API changes
- When the daemon detects a version mismatch with the client, usually when the client is newer than the daemon, an HTTP 400 is now returned instead of a 404.
GET /containers/(id)/statsnow acceptsstreambool to get only one set of stats and disconnect.GET /containers/(id)/logsnow accepts asincetimestamp parameter.GET /infoThe fieldsDebug,IPv4Forwarding,MemoryLimit, andSwapLimitare now returned as boolean instead of as an int. In addition, the end point now returns the new boolean fieldsCpuCfsPeriod,CpuCfsQuota, andOomKillDisable.- The
hostConfigoption now accepts the fieldsCpuPeriodandCpuQuota POST /buildacceptscpuperiodandcpuquotaoptions
v1.18 API changes
GET /versionnow returnsOs,ArchandKernelVersion.POST /containers/createandPOST /containers/(id)/startallow you to set ulimit settings for use in the container.GET /infonow returnsSystemTime,HttpProxy,HttpsProxyandNoProxy.GET /images/jsonadded aRepoDigestsfield to include image digest information.POST /buildcan now set resource constraints for all containers created for the build.CgroupParentcan be passed in the host config to setup container cgroups under a specific cgroup.POST /buildclosing the HTTP request cancels the buildPOST /containers/(id)/execincludesWarningsfield to response.