Iniciar contenedores utilizando APIs
En Capítulo 2, Trabajando con contenedores de Docker, receta Iniciar un contenedor , exploramos metódicamente y con detalle diferentes formas de ejecutar contenedores. En todos esos escenarios, utilizamos el comando docker container run con algunas opciones, y todos nuestros contenedores estaban en ejecución. Sin embargo, detrás de escena, la CLI de Docker hace que esto sea posible creando primero la capa del contenedor a través de la API /create y luego iniciando la aplicación ( cmd ) a través de la API /start , como se visualiza aquí:

Además de las APIs /create y /start , la CLI de Docker utiliza APIs como /attach y /wait para cumplir con nuestra solicitud. En esta receta, crearemos un contenedor alpine y ejecutaremos un comando ls simple para demostrar los pasos involucrados en la iniciación de un contenedor a través de las APIs del motor de Docker.
Cómo hacerlo…
- Comience creando un contenedor a partir de una imagen
alpine, como se muestra aquí:

Aquí, utilizamos la opción -d del comando curl para pasar nuestra configuración de contenedor como datos JSON al motor de Docker. Evidentemente, la imagen es alpine , y el comando que elegimos ejecutar cuando el contenedor se inicia es ls . Además, también estamos solicitando al motor de Docker que adjunte STDERR y STDOUT a este contenedor, para recuperar la salida del comando ls .
El código de respuesta de encabezado HTTP 201 Created indica que nuestro contenedor se ha creado con éxito. Aparentemente, la respuesta del motor de Docker también es una carga útil JSON. El campo ID de la carga útil contiene el ID del contenedor, que es f9fd4b2e2040d4dea32deb527889bf2fb95b351d8316a4c74bfb6e2e38c9b499 . Utilizaremos la versión corta del ID del contenedor, f9fd4b2e2040 , para realizar operaciones adicionales en este contenedor.
- Dado que queremos capturar la salida del comando
lsen la pantalla, adjuntémonos al contenedor utilizando la API/attach:
![]()
La API /attach bloquearía al cliente (es decir, curl ) si se llama con los parámetros stderr , stdout y stream , por lo que estamos ejecutando el comando curl en segundo plano.
- Ahora, proceda a iniciar el contenedor utilizando la API
/start, como se demuestra aquí:

Genial, ¿verdad? Emulamos el comando docker container run con las APIs del motor de Docker.
Cómo funciona…
En esta receta, utilizamos tres APIs del motor de Docker para iniciar con éxito un contenedor. En el backend, el motor de Docker recibió las llamadas a la API del cliente y, en nombre del cliente, creó el contenedor para la llamada a la API /container/create , luego bloqueó el flujo HTTP para la llamada a la API /containers/attach y finalmente ejecutó el comando ls dentro del espacio de nombres del contenedor para la llamada a la API /containers/start .
Hay más…
A continuación se muestra la lista de APIs que se ocupan del ciclo de vida de un contenedor:

Ver también
Cada punto final de API puede tener diferentes entradas para controlar las operaciones. Para obtener más detalles, visite la documentación en el sitio web de Docker en https://docs.docker.com/engine/api/latest/.