Programa Python para controlar Docker mediante la API

3 de abril de 2024

Lang: cs en de es

¿Necesitas controlar Docker? La API, que está disponible por ejemplo a través de un socket Unix, es una forma estupenda de hacerlo. Como lenguaje de programación puedes utilizar, por ejemplo, Python, que es un lenguaje de programación de scripts, por lo que puedes desarrollar rápidamente la funcionalidad que necesites. Además, existe una librería para Python que implementa la API de Docker, por lo que puedes ahorrarte algo de trabajo. ¿Cómo hacerlo? Es sencillo....Lo describiré en este tutorial.

No sólo se puede controlar Docker desde la consola o con alguna herramienta de orquestación, sino que también existe una API. La Aplicación Programación Interfaz) es una forma (interfaz) de usar tu programa para controlar otra aplicación.

¿Por qué usar la API de Docker?

Usar la API de Docker es útil en situaciones como:

  1. Automatización e integración: Integrar las API de Docker en herramientas o flujos de trabajo existentes, permite automatizar procesos, lo que aumentará la eficiencia del trabajo. Esto puede ser especialmente útil en entornos DevOps, en los que se desea realizar un rápido desarrollo continuo de aplicaciones (CI/CD).
  2. Automatización e integración:
  3. Herramientas e interfaces personalizadas: El uso de la API de Docker permite crear interfaces de usuario o herramientas personalizadas que se adapten mejor a las necesidades o procesos específicos de tu organización.
  4. Orquestación y gestión de contenedores: Las API de Docker le permiten controlar mediante programación el inicio, la detención y la gestión de contenedores. Esto es esencial para gestionar un gran número de contenedores. Las herramientas que se encargan de dicha tarea se denominan orquestadores. Entre ellos se incluyen Kubernetes, Docker Swarm y otros.
  5. Las API de Docker permiten controlar de forma programática el inicio, la detención y la gestión de grandes cantidades de contenedores.
  6. Monitorización y gestión de recursos: Utilizando la API de Docker, puede monitorizar la salud de los contenedores, recopilar métricas e información sobre el uso de recursos, lo que puede ser útil para la gestión del rendimiento y el escalado de aplicaciones.
  7. Las herramientas de monitorización y gestión de recursos son esenciales para la gestión de un gran número de contenedores.
  8. Integración con servicios en la nube y otras tecnologías: La API de Docker permite la integración con varios servicios en la nube y otras tecnologías, lo que puede mejorar la flexibilidad y las opciones de despliegue de las aplicaciones.
  9. Integración con servicios en la nube y otras tecnologías.

Uso práctico

Imagina que tienes una aplicación que necesitas ejecutar para ejecutar trabajos por lotes, y cada ejecución tiene que tener diferentes parámetros o diferentes datos de entrada. Al mismo tiempo, para monitorizar el rendimiento o más bien la carga, necesitas gestionar la ejecución de estos servicios. En esta situación, puedes escribir tu propio programa para recopilar los datos necesarios y ejecutar contenedores docker con los parámetros requeridos según sea necesario.

Programa Python

Aquí tienes un ejemplo de código básico de cómo usar python y la API de Docker. Esta aplicación se conecta a la API de Docker y lista todos los contenedores en ejecución:

/usr/bin/env python
# -*- coding: utf-8 -*-
importar docker

client = docker.from_env()

c=cliente.contenedores.lista()
print(c)
para i en c:
    print(i)
    print(i.nombre)

Código fuente

La muestra completa, que se puede ejecutar en un contenedor docker, está aquí: https://github.com/josefjebavy/python-docker-example

Construir imagen con la aplicación de ejemplo:

docker build -t python-docker-app .

Lanzar manualmente la aplicación desde la consola:
docker run -it --rm -v $PWD:/usr/src/app -v /var/run/docker.sock:/var/run/docker.sock --name python-docker-app-run python-docker-app /bin/bash

La forma más sencilla de ejecutar el proyecto es con docker-compose, que además hará la construcción inicial de la imagen docker con la aplicación:
docker-compose up

Lo más clave es permitir que la aplicación acceda al socket docker daemon, para poder controlar todo el docker.

Documentación

Documentación de la librería Python para controlar docker usando el API: https://docker-py.readthedocs.io/en/stable/

Vista previa del vídeo

Una completa demostración en vídeo de cómo preparar y ejecutar una aplicación Python que listará todos los contenedores Docker en ejecución. Y otras formas de usar la API de Docker:

Artículos sobre un tema similar

Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Cómo ejecutar aplicaciones PHP antiguas
Lo que debe saber un buen programador
Lenguaje de programación Rust
NodeJS: desarrollo, configuración del servidor
Fallo de seguridad de Nette CVE-2020-15227
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Smartphone abierto con Linux - Openmoko Neo FreeRunner

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+