Mr.PlanB Logo
    Volver al blog
    Proxmox
    Contenedores
    Almacenamiento
    Backup

    ¿Deberías ejecutar Portainer en un LXC o en una VM en Proxmox?

    24 de junio de 2026
    11 min de lectura

    Portainer ofrece una interfaz gráfica para gestionar contenedores, imágenes, volúmenes, redes y stacks de aplicaciones de Docker. En Proxmox, la decisión principal de despliegue es si Docker y Portainer deben ejecutarse dentro de un contenedor LXC o de una máquina virtual.

    Los dos enfoques pueden funcionar. Un despliegue en LXC suele usar menos recursos y arranca rápido, mientras que una máquina virtual ofrece un aislamiento más fuerte, un kernel propio y un entorno más convencional para Docker.

    Para la mayoría de las empresas y de los homelabs orientados a producción, una pequeña máquina virtual Linux es la opción por defecto más segura. LXC puede ser una buena elección cuando importa la eficiencia de recursos y el administrador entiende los contenedores anidados, los permisos y el comportamiento del almacenamiento.

    ¿Qué estás instalando en realidad?

    Portainer Server normalmente se ejecuta como un contenedor Docker. El proceso de instalación oficial requiere un entorno Docker que funcione, crea almacenamiento persistente para los datos de Portainer y arranca el contenedor de Portainer Server. Por defecto, Portainer expone su interfaz por HTTPS en el puerto 9443.

    Así que la comparación real suele ser entre Portainer y Docker dentro de una máquina virtual de Proxmox, y Portainer y Docker dentro de un contenedor LXC de Proxmox. Normalmente estás eligiendo dónde debe ejecutarse el motor Docker que aloja Portainer, más que elegir entre Portainer como aplicación LXC nativa y Portainer como appliance de máquina virtual.

    Esto importa porque Docker espera controlar funciones del kernel, la red, el almacenamiento y el aislamiento de procesos. Una máquina virtual tiene su propio kernel, mientras que un contenedor LXC comparte el kernel del host de Proxmox.

    ¿Cómo funciona un contenedor LXC de Proxmox?

    Proxmox usa LXC para contenedores a nivel de sistema operativo. LXC crea sistemas Linux aislados que comparten el kernel del host de Proxmox. Como el invitado no necesita un kernel propio, normalmente requiere menos memoria y almacenamiento que una máquina virtual completa.

    Un contenedor LXC puede tener su propia dirección IP, sistema de archivos, usuarios, servicios y límites de recursos. Desde el punto de vista de la aplicación, se comporta de forma muy parecida a un pequeño servidor Linux.

    Ejecutar Docker dentro de LXC añade otra capa de contenedores. Proxmox gestiona el contenedor de sistema exterior, mientras que Docker gestiona los contenedores de aplicación que hay dentro. A esta disposición a veces se la llama contenerización anidada. Puede ser eficiente, pero introduce más interacción entre el host de Proxmox, la configuración de LXC y el runtime de Docker.

    Proxmox ofrece ajustes de contenedor como keyctl, que es necesario para usar Docker dentro de un contenedor sin privilegios. Otras configuraciones también pueden requerir funciones de anidamiento, permisos de dispositivos o ajustes de almacenamiento.

    ¿Qué ventajas tiene ejecutar Portainer en LXC?

    La ventaja principal es la eficiencia. Un contenedor LXC no necesita reservar recursos para un kernel invitado aparte, así que un entorno pequeño de Portainer y Docker puede funcionar con poca memoria, poca capacidad de procesador y poco almacenamiento.

    Los contenedores LXC también arrancan rápido. Esto puede ser útil en un homelab compacto donde el host de Proxmox tiene poca memoria y varios servicios de infraestructura tienen que compartir el mismo hardware. Proxmox puede gestionar el contenedor exterior desde su interfaz normal, así que puedes asignar recursos, configurar la red, programar copias de seguridad y mover el contenedor entre nodos compatibles del clúster.

    Un despliegue en LXC puede ser adecuado cuando Portainer gestiona un número pequeño de aplicaciones de bajo riesgo y el administrador se siente cómodo resolviendo problemas de permisos en Linux. También puede funcionar bien cuando el servidor Proxmox es sobre todo un entorno de laboratorio y una interrupción breve no crearía un problema de negocio serio.

    ¿Qué desventajas tiene Docker dentro de LXC?

    La mayor desventaja es la complejidad añadida. Cuando una aplicación Docker falla dentro de un invitado LXC, el problema puede venir de la aplicación, de Docker, del sistema operativo invitado, de los permisos de LXC o del kernel del host de Proxmox.

    El almacenamiento puede volverse especialmente confuso. Docker admite varios drivers de almacenamiento, mientras que LXC en Proxmox tiene su propio comportamiento de puntos de montaje, mapeo de usuarios y copias de seguridad. Una configuración que parece correcta dentro del contenedor puede comportarse de otra forma por restricciones aplicadas fuera de él.

    El acceso al hardware también puede requerir trabajo extra. Pasar una GPU, un dispositivo USB u otro hardware a Docker puede requerir permisos tanto en la capa LXC de Proxmox como en la capa de Docker.

    Los contenedores LXC sin privilegios mejoran la seguridad al mapear el root del contenedor a una identidad sin privilegios en el host. Sin embargo, este mapeo puede complicar el acceso a directorios montados y archivos de dispositivo. Algunos administradores resuelven estos problemas con contenedores privilegiados, que pueden simplificar los permisos pero debilitan el aislamiento entre el contenedor y el host de Proxmox.

    LXC puede ahorrar recursos, aunque el tiempo dedicado a diagnosticar permisos anidados puede superar el valor de la memoria ahorrada.

    ¿Cómo funciona una máquina virtual de Proxmox?

    Proxmox usa KVM para las máquinas virtuales completas. Cada máquina virtual recibe hardware virtualizado y ejecuta su propio sistema operativo invitado y su propio kernel.

    Una máquina virtual para Portainer suele ejecutar una distribución Linux estándar como Debian o Ubuntu. Docker se instala con el mismo proceso que se usaría en un servidor Linux físico o en una instancia en la nube, y después Portainer se ejecuta como contenedor Docker dentro de ese invitado.

    Esta arquitectura crea una separación clara. Proxmox gestiona la máquina virtual, el sistema operativo invitado gestiona Docker y Portainer gestiona las aplicaciones Docker. Cada capa tiene una responsabilidad definida, lo que en general hace que el entorno sea más fácil de entender y de mantener.

    ¿Qué ventajas tiene ejecutar Portainer en una VM?

    La ventaja más fuerte es el aislamiento. Como la máquina virtual tiene su propio kernel, Docker queda separado del kernel del host de Proxmox. Un escape de contenedor o un error de configuración de Docker tiene que atravesar el límite de la máquina virtual antes de afectar al hipervisor.

    Una máquina virtual también le da a Docker un entorno convencional. Las guías de instalación estándar, las instrucciones de resolución de problemas y las recomendaciones de seguridad suelen dar por hecho que Docker se ejecuta en un sistema Linux completo. La red de Docker, los drivers de sistema de archivos y las funciones del kernel tienen menos probabilidades de verse afectados por las restricciones de LXC. Hacer passthrough de hardware puede seguir requiriendo planificación, pero hay menos capas de permisos anidadas.

    Una VM también es más fácil de trasladar a otra plataforma. Si más adelante dejas Proxmox, el host de Docker se puede migrar como una máquina virtual convencional o reconstruir a partir de su sistema operativo y su configuración de Compose. Esa portabilidad importa cuando Portainer gestiona servicios de aplicación importantes y no contenedores temporales de homelab.

    ¿Una VM requiere mucho más hardware?

    Una máquina virtual requiere más recursos que LXC, pero Portainer en sí es ligero. Portainer describe sus componentes Server y Agent como contenedores Docker ligeros.

    Una pequeña VM Linux a menudo puede ejecutar Portainer y varias aplicaciones Docker modestas sin necesitar grandes asignaciones. Los requisitos reales dependen más de las aplicaciones gestionadas que de Portainer. Una base de datos, un servidor multimedia o una aplicación de inteligencia artificial pueden necesitar bastante memoria y almacenamiento, y los requisitos de recursos del propio Portainer suelen ser una parte pequeña del total.

    En la mayoría de los hosts de Proxmox modernos, la memoria extra que usa un pequeño invitado Linux es un coste razonable a cambio de un aislamiento más fuerte y un soporte más sencillo.

    ¿Qué opción es más fácil de respaldar?

    Proxmox puede crear copias de seguridad completas tanto de máquinas virtuales como de contenedores LXC. Su sistema de backup integrado incluye la configuración y los datos del invitado, y los trabajos programados pueden proteger automáticamente las cargas de trabajo seleccionadas. Una copia de seguridad completa de Proxmox del host de Docker puede proteger, por tanto, el sistema operativo, la instalación de Docker, la base de datos de Portainer y los volúmenes de aplicación almacenados localmente.

    Portainer también tiene su propia función de copia de seguridad, que cumple otro propósito. Una copia de seguridad de Portainer incluye la base de datos de Portainer y los archivos de stack desplegados a través de Portainer, y deja fuera los contenedores y los datos de aplicación del entorno gestionado. Restaurar la configuración de Portainer no te devolverá un volumen de base de datos, los archivos subidos ni una biblioteca multimedia.

    La mejor protección combina varias capas. Haz copia de seguridad de la configuración de Portainer, guarda los archivos de Compose en control de versiones y usa Proxmox Backup Server u otra plataforma de backup para proteger el invitado de Docker completo y sus datos de aplicación.

    ¿Qué opción es más fácil de actualizar?

    Las actualizaciones de Portainer son parecidas en los dos entornos porque Portainer se ejecuta como contenedor Docker. El proceso documentado para Docker detiene y elimina el contenedor de Portainer existente, descarga la imagen más reciente y vuelve a crear el contenedor conservando los datos persistentes.

    La diferencia aparece cuando Docker o el sistema operativo necesitan una actualización. Dentro de una VM, los administradores siguen los procedimientos estándar de Linux y Docker, y las actualizaciones del kernel solo afectan al invitado. Dentro de LXC, el invitado comparte el kernel de Proxmox, así que parte del comportamiento de Docker puede cambiar tras una actualización del kernel de Proxmox o de LXC, incluso cuando los paquetes del invitado no cambian.

    Una máquina virtual ofrece un ciclo de actualización más independiente. Puedes probar una actualización del sistema operativo invitado sin tocar el host de Proxmox y probar una actualización de Proxmox sin sustituir de inmediato el kernel del invitado de Docker.

    ¿Qué opción se lleva mejor con los clústeres de Proxmox?

    Proxmox puede gestionar tanto máquinas virtuales como contenedores LXC como recursos del clúster. Su gestor de alta disponibilidad puede vigilar las VMs y los contenedores protegidos y reiniciarlos cuando falla un nodo, siempre que el diseño del clúster y del almacenamiento permita la recuperación. Los dos tipos de despliegue de Portainer pueden participar, por tanto, en los flujos de copia de seguridad, migración y alta disponibilidad de Proxmox.

    Una VM puede ser más fácil de migrar cuando su almacenamiento y su red son autónomos. La migración de LXC también puede funcionar bien, pero los bind mounts, los mapeos de dispositivos y la configuración específica del host pueden reducir la portabilidad.

    Si Portainer depende del acceso a un socket de Docker local, a almacenamiento de aplicaciones o a hardware conectado a un nodo, la alta disponibilidad requiere algo más que marcar el invitado como protegido. Cada dependencia tiene que estar disponible en el nodo de recuperación.

    ¿LXC o una VM?

    Proxmox LXC vs VM: Docker and Portainer inside LXC share the Proxmox host kernel, while inside a VM they run on the guest own kernel, with when to choose each

    Elige LXC cuando el host de Proxmox tenga recursos limitados, la carga de trabajo sea pequeña y te sientas cómodo gestionando los permisos anidados de Docker. Es una opción razonable para experimentar, para homelabs personales y para servicios no críticos.

    Elige una máquina virtual cuando Portainer gestione aplicaciones de producción, servicios expuestos a internet o cargas de trabajo que tengan que ser fáciles de mantener y de recuperar. Una VM también es preferible cuando necesitas passthrough de hardware, un comportamiento predecible del almacenamiento de Docker o una separación más fuerte respecto al host de Proxmox.

    Para la mayoría de los usuarios, una VM Linux dedicada es la mejor opción a largo plazo. Consume algo más de memoria y espacio en disco, pero la arquitectura es más fácil de asegurar, documentar, migrar y diagnosticar. LXC es más eficiente, mientras que una máquina virtual da un aislamiento más claro y menos dependencias ocultas, y cuando Portainer controla cargas de trabajo Docker importantes, esas ventajas operativas suelen importar más que ahorrar un poco de memoria.