Estamos preparando el PDF de «Contenedores (Docker)». Se descargará automáticamente en cuanto esté listo.
← Lumbre

DevOps para Datos · 8.º Contenedores (Docker)

Portada de Contenedores (Docker)

Contenedores (Docker)

✦ El funciona en mi máquina es el enemigo de la colaboración · DevOps para Datos · Ingeniería de Datos · en menos de 9 minutos

Roadwise Consulting

Firmado y verificado · Biblioteca UNIV

Objetivo: Empaquetar aplicaciones y canalizaciones de datos en contenedores reproducibles con Docker, aislando dependencias.

9 min DevOps para Datos · Ingeniería de Datos 18–30 años
Más
Contenedores (Docker)

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a DevOps para Datos · 8.º semestre Cursos Explorar Mi cuenta Salir del modo estudio

Contenedores (Docker)

Docker explicado fácil
Qué es un contenedor, cómo se construye una imagen por capas y por qué corre igual en cualquier sitio.

Qué es un contenedor

Una unidad estandarizada de software que empaqueta código y sus dependencias para que corra de forma rápida y fiable de un entorno a otro. Comparte el kernel del anfitrión, sin máquina virtual completa.

Contenedor frente a máquina virtual

  • La VM virtualiza hardware: trae su propio sistema operativo, pesada.
  • El contenedor virtualiza el sistema operativo: ligero y de arranque veloz.
  • Muchos contenedores caben donde cabría una VM.

La imagen

Una imagen es el molde inmutable: capas de sistema de archivos con el software. De ella nacen contenedores en ejecución, como de un plano nacen casas.

Capas y caché

Las imágenes se construyen en capas apiladas. Docker reutiliza capas en caché, acelerando reconstrucciones y ahorrando espacio al compartir capas entre imágenes.

El Dockerfile

  • Receta que declara cómo construir la imagen.
  • Cada instrucción suele añadir una capa.
  • Escribirlo ordenado maximiza el uso de caché.

Reproducibilidad

Al fijar dependencias dentro de la imagen, el mismo contenedor corre igual en portátil, servidor o nube. Se acaba la divergencia de entornos.

Aislamiento

Cada contenedor tiene su espacio de procesos y red aislados. Dos aplicaciones con librerías incompatibles pueden coexistir sin pelearse.

Varios contenedores apilados como cajas de transporte, cada uno con un pequeño cubo de aplicación, asentados sobre una fina capa compartida del anfitrión; al lado, una imagen representada como láminas translúcidas superpuestas.
El contenedor empaqueta código y dependencias sobre un kernel compartido; la imagen es un molde inmutable hecho de capas.

Registros de imágenes

Un registro (como un almacén) guarda imágenes versionadas para compartirlas y desplegarlas. Es el equivalente a un repositorio git pero de artefactos ejecutables.

Volúmenes y estado

  • La imagen es inmutable; los datos vivos van en volúmenes.
  • Separar estado permite reemplazar el contenedor sin perder información.
  • Un contenedor sin volumen es desechable.

Para datos e IA

Las canalizaciones y modelos se empaquetan en contenedores para que el entrenamiento y la inferencia corran idénticos en cualquier nodo del clúster.

Buenas prácticas

  • Imágenes pequeñas: solo lo necesario.
  • No guardar secretos dentro de la imagen.
  • Etiquetar versiones con claridad.

Errores frecuentes

  • Confiar en el «funciona en mi máquina» en vez de fijar dependencias dentro de la imagen.
  • Guardar secretos dentro de la imagen, donde quedan expuestos a quien la extraiga.
  • Arrastrar todo el sistema operativo en una imagen enorme cuando bastarían capas mínimas.

Ejemplo resuelto: del portátil al servidor sin dramas

Una canalización que corre en el portátil pero falla en el servidor se empaqueta en un Dockerfile: se declara la base, se copian dependencias fijadas y el código. La imagen construida se sube a un registro y el servidor la ejecuta idéntica, acabando la divergencia de entornos.

  1. redactar un Dockerfile que fije la base y las dependencias
  2. construir la imagen por capas aprovechando la caché
  3. probar localmente que el contenedor arranca igual
  4. publicar la imagen versionada en un registro
  5. ejecutar contenedores desde esa imagen en el servidor

¿Para qué sirve en la realidad?

Todo despliegue moderno —microservicios, canalizaciones de datos, servicios de inferencia— se empaqueta en contenedores para que corra idéntico en desarrollo, servidor y nube, eliminando el clásico problema de entornos que no coinciden.

¿Qué ventaja tiene un contenedor frente a una máquina virtual?

Un contenedor en ejecución puede modificarse y esas modificaciones persistir en la imagen de la que nació.

Docker

Molde inmutable del que nacen contenedores
imagen
Receta que construye la imagen
dockerfile
Capas reutilizables de la imagen
cache
Almacén de imágenes versionadas
registro
Donde vive el estado fuera de la imagen
volumen

Toca una tarjeta para ver la respuesta.

Ordena el ciclo de vida con Docker:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Une cada término de Docker con su definición:

      Docker

      • Contenedores
        • Concepto
          • unidad de software
            • kernel compartido
              • más ligero que una VM
              • Imagen
                • Dockerfile
                  • capas
                    • caché
                    • Distribución
                      • registro
                        • etiquetas
                          • volúmenes
                          • Ventajas
                            • reproducibilidad
                              • aislamiento
                                • portabilidad

                              Tu canalización corre en tu portátil pero falla en el servidor. ¿Cómo resolvería un contenedor ese problema y qué capa de la imagen lo causa?

                              Tu texto se guarda sólo en este dispositivo.

                              Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.
                              Más sobre esta lección
                              Explora temas relacionados

                              Conceptos

                              Comentarios

                              Inicia sesión para comentar.

                              Todavía no hay comentarios. Sé la primera persona en opinar.