Generated by GPT-5-mini| Docker Engine API | |
|---|---|
| Name | Docker Engine API |
| Developer | Docker, Inc. |
| Initial release | 2013 |
| Written in | Go |
| Platform | Linux, Windows, macOS |
| License | Apache License 2.0 |
| Website | Docker Documentation |
Docker Engine API The Docker Engine API is a RESTful interface that exposes functionality of the Docker Engine for programmatic control of containers, images, networks, and volumes. It enables integration between orchestration systems, continuous integration tools, cloud providers, and platform teams, and is widely used in production by projects like Kubernetes, OpenShift, HashiCorp Nomad, Jenkins, and GitLab CI/CD. The API surface is implemented in the Go (programming language), maintained by Docker, Inc., and evolves alongside the Docker Engine and ecosystem projects such as Moby (software).
The API provides HTTP/HTTPS endpoints that mirror capabilities exposed by the Docker CLI, allowing remote and local control of container lifecycle, image management, networking, storage, and runtime diagnostics. Major stakeholders include Cloud Native Computing Foundation, Red Hat, and cloud providers like Amazon Web Services, Microsoft Azure, and Google Cloud Platform, which integrate the API into managed services. The interface supports both UNIX domain sockets on Linux and named pipes on Microsoft Windows, and is used by higher-level systems such as Docker Compose and Rancher.
The Engine implements a layered architecture with a daemon process that exposes the HTTP API, a client-side HTTP transport, and pluggable components. Core components include the daemon, OCI-compatible runtime integration (such as runc), the image store, the containerd shim, and networking backends (including libnetwork). Storage and volume drivers interact with the kernel via subsystems like Device Mapper or OverlayFS, while orchestration layers use the API to manage service tasks and secrets. The API surface is defined in the Engine codebase and mirrors data models used by the Open Container Initiative specifications.
Endpoints are grouped by resource types: containers, images, networks, volumes, services, tasks, nodes, secrets, and system utilities. Container endpoints include create, start, stop, exec, and attach operations; image endpoints support build, pull, push, tag, and prune operations. Networking endpoints manage network create, inspect, connect, and disconnect for driver plugins; volume endpoints expose create, inspect, mount, and remove. Service and swarm endpoints implement orchestration primitives used by Docker Swarm and integrate with cluster management provided by orchestration engines. System endpoints expose events, version, info, and distribution metadata.
Security considerations include transport security, access control, and sandboxing. TLS mutual authentication, certificate management, and role-based access integrate with external identity systems from vendors such as HashiCorp, Okta, and Azure Active Directory. Authorization models include API-level access controls used by orchestration platforms like Kubernetes RBAC and enterprise products from Red Hat and Mirantis. Runtime security leverages Linux kernel features like seccomp, AppArmor, and SELinux, and container image signing and verification workflows are supported through projects such as Notary and The Update Framework.
There are multiple client libraries and SDKs that wrap the HTTP API, including the official Go client, community clients for Python (programming language), JavaScript, Java (programming language), and C#, and third-party SDKs used by automation tools like Ansible and Terraform. Tooling from vendors such as JFrog, GitHub, and Atlassian integrates these libraries for image pipelines and CI/CD tasks. SDKs abstract raw JSON schemas and provide typed models, connection pooling, and retry semantics compatible with platforms like Amazon Elastic Container Service and Google Kubernetes Engine.
Common workflows include image build-and-push pipelines, blue-green deployments, rolling updates, canary releases, and self-healing patterns implemented via orchestration platforms. CI/CD pipelines in Jenkins, Travis CI, and CircleCI use the API to run disposable build agents and push artifacts to registries such as Docker Hub and Harbor. Infrastructure-as-code tools like Terraform and configuration management systems like Ansible issue API calls for lifecycle automation. Monitoring and logging stacks—e.g., Prometheus, ELK Stack, and Grafana—consume API metrics and events for observability and incident response.
Docker Engine API follows semantic compatibility practices with explicit version negotiation endpoints so clients and servers can interoperate across Engine releases. Change management is coordinated with upstream projects including Moby (software), containerd, and runc, and announced through release notes maintained by Docker, Inc.. Enterprises track deprecations and feature additions to plan upgrades in managed offerings from Red Hat OpenShift, Amazon EKS, and Azure AKS.
Category:Application programming interfaces Category:Containerization