This is the Trace Id: 339c83192a9e512a9d4ba82e71759d3f
Saltar al contenido principal Explorar Ver todos los productos (más de 200) Microsoft Foundry Azure Copilot GitHub Copilot Azure Kubernetes Service (AKS) Azure Cosmos DB Azure Database for PostgreSQL Azure Arc Microsoft Fabric Linux Virtual Machines en Azure Foundry Models Foundry Agent Service Foundry IQ Foundry Tools Foundry Control Plane Observability en Foundry Control Plane Azure OpenAI en Foundry Models Voz de Azure en Foundry Tools Azure Machine Learning Ver todas las bases de datos Azure Cosmos DB Azure DocumentDB Azure SQL Azure Database for PostgreSQL Redis Administrado de Azure Microsoft Fabric Azure Databricks Linux Virtual Machines en Azure Windows Server en Azure Azure Functions Azure Virtual Machine Scale Sets Azure API Management Azure Container Apps Azure Kubernetes Service (AKS) Azure Kubernetes Fleet Manager Azure Container Registry Red Hat OpenShift en Azure Azure Container Instances Almacenamiento de contenedores de Azure Azure Arc Azure Local Microsoft Defender for Cloud Azure Monitor Microsoft Sentinel Azure Migrate Ve todas las soluciones (más de 40) Soluciones de la nube para pequeñas y medianas empresas Centro de migración y modernización de la nube Análisis de datos para la IA Azure Databases Agentes y aplicaciones de IA Microsoft Marketplace Microsoft Sovereign Cloud Agentes y aplicaciones de IA IA responsable con Azure Infraestructura de IA Análisis de datos para la IA Operaciones de aprendizaje automático (MLOps) Desarrollo de aplicaciones con poco Código en Azure Servicios de integración Informática sin servidor DevOps Centro de migración y modernización Migración de aplicaciones de .NET Bases de datos en Azure Linux en Azure Oracle en Azure SAP en la nube de Microsoft Nube adaptable Informática de alto rendimiento (HPC) Infraestructura como servicio (IaaS) Resistencia Azure Essentials Azure Accelerate FinOps en Azure Microsoft Marketplace Información general sobre los precios de Azure Crear una cuenta de Azure Servicios de Azure gratis Opciones de compra flexibles Calculadora de precios FinOps en Azure Maximiza el ROI de la IA Planes de ahorro de Azure Reservas de Azure Ventaja híbrida de Azure Virtual Machines Azure SQL Microsoft Foundry Microsoft Fabric Azure Kubernetes Service (AKS) Microsoft Defender for Cloud Empresas de desarrollo de software Microsoft Marketplace Buscar un partner Comenzar a usar Azure Casos de clientes Informes de análisis, e-books y notas del producto Vídeos Más información sobre la informática en la nube Documentación Explorar Azure Portal Recursos para desarrolladores Plantillas de inicio rápido Recursos para startups Comunidad de desarrolladores Estudiantes Azure para partners Blog Eventos y seminarios web Aprender Asistencia Contacto con ventas Comenzar a usar Azure Iniciar sesión

¿Qué es un contenedor?

Empaquetado portable normalizado para tus aplicaciones.

Concepto de contenedor

Del mismo modo que en el sector del transporte se usan contenedores físicos para aislar diferentes cargas (por ejemplo, para el transporte en buques y en trenes), las tecnologías de desarrollo de software usan cada vez más un método denominado contenerización.

Un paquete de software estándar (conocido como "contenedor") agrupa el código de una aplicación con las bibliotecas y los archivos de configuración asociados, junto con las dependencias necesarias para que la aplicación se ejecute. Esto permite a los desarrolladores y profesionales de TI implementar aplicaciones sin problemas en todos los entornos.

Por qué deberías tener en cuenta los contenedores

El problema de que una aplicación no se ejecute correctamente cuando se mueve de un entorno a otro es tan antiguo como el propio desarrollo de software. Estos problemas suelen deberse a diferencias de configuración en los requisitos de las bibliotecas subyacentes y otras dependencias.

Los contenedores solucionan este problema proporcionando una infraestructura ligera e inmutable para el empaquetado y la implementación de aplicaciones. Una aplicación o un servicio, sus dependencias y su configuración se empaquetan como una imagen de contenedor. La aplicación en contenedor se puede probar como una unidad e implementarse como una instancia de imagen de contenedor en el sistema operativo host.

De esta manera, los contenedores permiten a los desarrolladores y profesionales de TI implementar aplicaciones en entornos sin necesidad de realizar ningún cambio o solo con cambios mínimos.

Obtén más información sobre el origen y lo interesante de los contenedores.

Una persona dibuja diagramas con un marcador blanco.

Contenedor frente a máquina virtual

Cuando los usuarios piensan en la virtualización, a menudo les viene a la mente las máquinas virtuales (VM). En realidad, la virtualización puede tomar muchas formas y los contenedores son una de ellas. ¿Cuál es la diferencia entre las máquinas virtuales y los contenedores?

A grandes rasgos, las máquinas virtuales virtualizan el hardware subyacente para que se puedan ejecutar varias instancias de sistemas operativos (SO) en el hardware. Cada máquina virtual ejecuta un sistema operativo y tiene acceso a recursos virtualizados que representan el hardware subyacente.

Las máquinas virtuales tienen muchas ventajas. Entre ellas, se incluyen la capacidad de ejecutar diferentes sistemas operativos en el mismo servidor, el uso más eficaz y rentable de los recursos físicos y el aprovisionamiento de servidores más rápido. Por otra parte, cada máquina virtual contiene una imagen de sistema operativo, bibliotecas, aplicaciones, etc., por lo que puede ser bastante grande.

Un contenedor virtualiza el sistema operativo subyacente y hace que la aplicación en contenedor perciba que tiene el sistema operativo (incluidas la CPU, la memoria, el almacenamiento de archivos y las conexiones de red) todo para ella sola. Dado que se abstraen las diferencias en el sistema operativo y la infraestructura subyacentes, siempre que la imagen base sea coherente, el contenedor se puede implementar y ejecutar en cualquier lugar. Para los desarrolladores, esto es sumamente interesante.

Puesto que los contenedores comparten el sistema operativo host, no necesitan arrancar un sistema operativo ni cargar bibliotecas. Esto permite que los contenedores sean mucho más eficientes y ligeros. Las aplicaciones en contenedor se pueden iniciar en segundos y pueden caber muchas más instancias de la aplicación en la máquina en comparación con un escenario de máquina virtual. El enfoque de un sistema operativo compartido tiene la ventaja adicional de reducir la sobrecarga en términos de mantenimiento, como la aplicación de revisiones y actualizaciones.

Aunque los contenedores son portables, están limitados al sistema operativo para el que se han definido. Por ejemplo, un contenedor para Linux no se puede ejecutar en Windows y viceversa.

Por qué contenedores

Agilidad

Cuando los desarrolladores compilan y empaquetan aplicaciones en contenedores y se las proporcionan al departamento de TI para que las ejecuten en una plataforma normalizada, se reduce el esfuerzo global de implementar las aplicaciones y puede optimizar todo el ciclo de desarrollo y pruebas. Esto aumenta también la colaboración y la eficacia entre los equipos de desarrollo y de operaciones para distribuir las aplicaciones con más rapidez.

Portabilidad

Los contenedores proporcionan un formato normalizado para empaquetar y mantener todos los componentes necesarios para ejecutar la aplicación deseada. Esto resuelve el problema típico de "en mi equipo funciona" y permite la portabilidad entre diversas plataformas de sistema operativo y entre nubes. Cada vez que se implementa un contenedor en cualquier lugar, se ejecuta en un entorno coherente que permanece intacto de una implementación a otra. Ahora dispones de un formato coherente, desde el entorno de desarrollo hasta la producción.

Escalabilidad rápida

Dado que los contenedores no tienen la sobrecarga típica de las máquinas virtuales, incluidas las instancias de sistemas operativos independientes, la misma infraestructura puede admitir muchos más contenedores. La naturaleza ligera de los contenedores significa que pueden iniciarse y detenerse rápidamente, lo que permite escalar y reducir verticalmente los recursos con rapidez.

Casos de uso

Aplicaciones nativas de nube

Las aplicaciones nativas de nube se basan en contenedores para lograr un modelo operativo común entre entornos, incluidos los públicos, privados e híbridos. La baja sobrecarga y la alta densidad de los contenedores permiten hospedar muchos de ellos en la misma máquina virtual y hacen que sean ideales para la entrega de aplicaciones nativas de nube.

Migración mediante lift-and-shift

Una organización puede obtener beneficios importantes al migrar a la nube, pero es posible que no desee reescribir las aplicaciones. El uso de contenedores permite migrar las aplicaciones a la nube sin cambiar el código.

Lote

El término "procesamiento por lotes" hace referencia a las actividades que se pueden realizar sin intervención humana o en función de los recursos disponibles. Algunos ejemplos de estas actividades son la generación de informes, el cambio de tamaño de imágenes y la conversión de archivos de un formato a otro. Los contenedores proporcionan una manera fácil de ejecutar trabajos por lotes sin tener que administrar un entorno y las dependencias. Las opciones de proceso dinámico, como Azure Container Instances (ACI), se pueden usar para ingerir datos de origen de forma eficaz, procesarlos y colocarlos en un almacén duradero, como Azure Blob Storage. El uso de este método en lugar de máquinas virtuales aprovisionadas de manera estática puede suponer un ahorro considerable en la facturación por segundo.

Aprendizaje automático

El aprendizaje automático aplica algoritmos a los datos y realiza predicciones basadas en los patrones que se encuentran en los datos. Los contenedores pueden hacer que las aplicaciones de aprendizaje automático sean autónomas y se puedan escalar fácilmente en cualquier entorno.

Volver a las pestañas

Más allá de los contenedores

Para maximizar las ventajas de los contenedores, considere el uso de soluciones completas, como herramientas y servicios optimizados para contenedores que le ayudarán a lograr agilidad, seguridad y escalabilidad.

Orquestación

La ejecución de contenedores a gran escala requiere la orquestación y administración de aplicaciones distribuidas y en contenedores a través de una plataforma de orquestación como Kubernetes.

Seguridad

En el ámbito de los contenedores, se requiere un enfoque por capas, desde la imagen del contenedor hasta el aislamiento del clúster. La configuración de estas barreras de seguridad se establece mejor con las canalizaciones de CI/CD.

Contenedores sin servidor

Puedes aumentar aún más la agilidad con contenedores a petición. Usa tecnologías de contenedor sin servidor para ejecutar fácilmente contenedores sin necesidad de administrar servidores y envía ráfagas de tus clústeres de Kubernetes cuando el tráfico alcance picos máximos.

Azure DevOps

DevOps

Los contenedores permiten a los desarrolladores compartir fácilmente software y dependencias en entornos de producción y de TI. Cuando se combinan con las prácticas de DevOps, permiten distribuir código de una forma más rápida y eficaz, así como reducir los ciclos de desarrollo de software.

Cuando quieras, puedes probar los contenedores y Kubernetes gratis con Azure 
Empezar gratis