API de Docker Engine
Docker proporciona una API para interactuar con el demonio de Docker (llamada API de Docker Engine), así como SDKs para Go y Python. Los SDKs te permiten compilar y escalar de manera eficiente aplicaciones y soluciones de Docker. Si Go o Python no se adaptan a tus necesidades, puedes usar la API de Docker Engine directamente.
Para obtener información sobre los SDKs de Docker Engine, consulta Desarrollar con los SDKs de Docker Engine.
La API de Docker Engine es una API RESTful a la que se accede mediante un cliente HTTP como wget o curl, o la biblioteca HTTP que forma parte de la mayoría de los lenguajes de programación modernos.
Ver la referencia de la API
Puedes ver la referencia de la última versión de la API o elegir una versión específica.
API y SDK con versiones
La versión de la API de Docker Engine que debes usar depende de la versión de tu demonio de Docker y de tu cliente de Docker.
Una versión dada del SDK de Docker Engine es compatible con una versión específica de la API de Docker Engine, así como con todas las versiones anteriores. Si ocurren cambios incompatibles (breaking changes), se documentan de forma destacada.
NoteEl demonio y el cliente de Docker no necesariamente tienen que ser de la misma versión en todo momento. Sin embargo, ten en cuenta lo siguiente:
- Si el demonio es más nuevo que el cliente, el cliente no conocerá las nuevas características o los puntos de conexión de la API obsoletos en el demonio.
- Si el cliente es más nuevo que el demonio, el cliente puede solicitar puntos de conexión de la API que el demonio no conoce.
Se lanza una nueva versión de la API cuando se añaden nuevas características. La API de Docker es retrocompatible, por lo que no necesitas actualizar el código que utiliza la API a menos que necesites aprovechar las nuevas características.
Para ver la versión más alta y más baja de la API que admiten tu demonio y cliente de Docker, utiliza docker version:
$ docker version
Client: Docker Engine - Community
Version: 29.5.1
API version: 1.54
...
Server: Docker Engine - Community
Engine:
Version: 29.5.1
API version: 1.54 (minimum version 1.40)
...
Puedes especificar la versión de la API a utilizar de cualquiera de las siguientes maneras:
Al utilizar el SDK, usa la última versión. Como mínimo, utiliza la versión que incorpore la versión de la API con las características que necesitas.
Al utilizar
curldirectamente, especifica la versión como la primera parte de la URL. Por ejemplo, si el punto de conexión es/containers/, puedes usar/v1.54/containers/.Para forzar a la CLI de Docker o a los SDKs de Docker Engine a utilizar una versión anterior de la API que la versión reportada por
docker version, establece la variable de entornoDOCKER_API_VERSIONcon la versión correcta. Esto funciona en clientes de Linux, Windows y macOS.$ DOCKER_API_VERSION=1.53Mientras la variable de entorno esté establecida, se utilizará esa versión de la API, incluso si el demonio de Docker admite una versión más nueva. Esta variable de entorno desactiva la negociación de la versión de la API, por lo que solo debes usarla si debes utilizar una versión específica de la API, o para fines de depuración.
El SDK de Go para Docker te permite habilitar la negociación de versión de la API, seleccionando automáticamente una versión de la API que sea compatible tanto con el cliente como con el Docker Engine en uso.
Para los SDKs, también puedes especificar la versión de la API de forma programada como un parámetro del objeto
client. Consulta el constructor de Go o la documentación del SDK de Python paraclient.
Versión mínima de la API
El servidor de la API de Docker Engine y el cliente admiten la negociación de la versión de la API. Si un cliente se conecta a una versión anterior de Docker Engine, negocia la versión más alta de la API admitida tanto por el cliente como por el demonio, descendiendo a una versión anterior de la API si es necesario.
Al descender a una versión anterior de la API, las características introducidas en versiones posteriores de la API se desactivan, y las peticiones y respuestas de la API se ajustan para la versión de la API negociada.
La negociación de la versión de la API permite que las herramientas que aún no se han actualizar a la última especificación de la versión de la API se comuniquen con Docker Engines más nuevos (y viceversa), pero la compatibilidad se realiza en la medida de lo posible (best effort); aunque Docker se esfuerza por proporcionar una compatibilidad total, es posible que algunas funcionalidades no estén disponibles.
Matriz de versiones de la API
| Versión de Docker | Versión máxima de la API | Versión mínima de la API | Registro de cambios |
|---|---|---|---|
| 29.5 | 1.54 | 1.40 | cambios |
| 29.4 | 1.54 | 1.40 | cambios |
| 29.3 | 1.54 | 1.40 | cambios |
| 29.2 | 1.53 | 1.44 | cambios |
| 29.1 | 1.52 | 1.44 | cambios |
| 29.0 | 1.52 | 1.44 | cambios |
| 28.5 | 1.51 | 1.24 | cambios |
| 28.4 | 1.51 | 1.24 | cambios |
| 28.3 | 1.51 | 1.24 | cambios |
| 28.2 | 1.50 | 1.24 | cambios |
| 28.1 | 1.49 | 1.24 | cambios |
| 28.0 | 1.48 | 1.24 | cambios |
| 27.5 | 1.47 | 1.24 | cambios |
| 27.4 | 1.47 | 1.24 | cambios |
| 27.3 | 1.47 | 1.24 | cambios |
| 27.2 | 1.47 | 1.24 | cambios |
| 27.1 | 1.46 | 1.24 | cambios |
| 27.0 | 1.46 | 1.24 | cambios |
| 26.1 | 1.45 | 1.24 | cambios |
| 26.0 | 1.45 | 1.24 | cambios |
| 25.0 | 1.44 | 1.24 | cambios |
| 24.0 | 1.43 | 1.12 | cambios |
| 23.0 | 1.42 | 1.12 | cambios |
| 20.10 | 1.41 | 1.12 | cambios |
| 19.03 | 1.40 | 1.12 | cambios |
Versiones de la API obsoletas
Las versiones de la API anteriores a la v1.40 están obsoletas y ya no son compatibles con las versiones actuales de Docker Engine y de la CLI. Puedes encontrar la documentación archivada para las versiones obsoletas de la API en el repositorio de código en GitHub:
| Versión de Docker | Versión máxima de la API | Versión mínima de la API | Registro de cambios |
|---|---|---|---|
| 18.09 | 1.39 | 1.12 | cambios |
| 18.06 | 1.38 | 1.12 | cambios |
| 18.05 | 1.37 | 1.12 | cambios |
| 18.04 | 1.37 | 1.12 | cambios |
| 18.03 | 1.37 | 1.12 | cambios |
| 18.02 | 1.36 | 1.12 | cambios |
| 17.12 | 1.35 | 1.12 | cambios |
| 17.11 | 1.34 | 1.12 | cambios |
| 17.10 | 1.33 | 1.12 | cambios |
| 17.09 | 1.32 | 1.12 | cambios |
| 17.07 | 1.31 | 1.12 | cambios |
| 17.06 | 1.30 | 1.12 | cambios |
| 17.05 | 1.29 | 1.12 | cambios |
| 17.04 | 1.28 | 1.12 | cambios |
| 17.03.1 | 1.27 | 1.12 | cambios |
| 17.03 | 1.26 | 1.12 | cambios |
| 1.13.1 | 1.26 | 1.12 | cambios |
| 1.13 | 1.25 | 1.12 | cambios |
| 1.12 | 1.24 | 1.12 | cambios |
| 1.11 | 1.23 | 1.12 | cambios |
| 1.10 | 1.22 | 1.12 | cambios |
| 1.9 | 1.21 | 1.12 | cambios |
| 1.8 | 1.20 | 1.12 | cambios |
| 1.7 | 1.19 | 1.0 | cambios |
| 1.6 | 1.18 | 1.0 | cambios |
| 1.5 | 1.17 | 1.0 | cambios |
| 1.4 | 1.16 | 1.0 | cambios |
| 1.3 | 1.15 | 1.0 | cambios |
| 1.2 | 1.14 | 1.0 | cambios |
| 1.1 | 1.13 | 1.0 | cambios |
| 1.0 | 1.12 | 1.0 | cambios |
| 0.12 | 1.12 | 1.0 | cambios |
| 0.11 | 1.11 | 1.0 | cambios |
| 0.10 | 1.10 | 1.0 | cambios |
| 0.9 | 1.10 | 1.0 | cambios |
| 0.8 | 1.9 | 1.0 | cambios |
| 0.7.1 | 1.8 | 1.0 | cambios |
| 0.7 | 1.7 | 1.0 | cambios |
| 0.6.4 | 1.6 | 1.0 | cambios |
| 0.6.2 | 1.5 | 1.0 | cambios |
| 0.6 | 1.4 | 1.0 | cambios |
| 0.5 | 1.3 | 1.0 | cambios |
| 0.4.1 | 1.2 | 1.0 | cambios |
| 0.3.4 | 1.1 | 1.0 | cambios |
| 0.3.3 | 1.0 | 1.0 | cambios |
| 0.3.2 | - | - | |
| 0.2 | - | - | |
| 0.1 | - | - |