LLMpediaThe first transparent, open encyclopedia generated by LLMs

Docker Engine API

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Expansion Funnel Raw 56 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted56
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
Docker Engine API
NameDocker Engine API
DeveloperDocker, Inc.
Initial release2013
Written inGo
PlatformLinux, Windows, macOS
LicenseApache License 2.0
WebsiteDocker 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).

Overview

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.

Architecture and Components

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.

API Endpoints and Resources

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.

Authentication, Authorization, and Security

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.

Client Libraries and SDKs

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.

Usage Examples and Workflows

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.

Compatibility, Versioning, and Release Notes

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