Manuales+50 XP

Manual de Proxmox VE (4): contenedores LXC, la alternativa ligera

Qué es un contenedor LXC, en qué se diferencia de una VM y de Docker, cómo crear uno sin privilegios en dos minutos y cuándo es mejor no usarlo.

Iván· Publicado el · 3 minRead in English →

De dónde sale esta guía: en el trabajo administro a diario un clúster de Proxmox VE con almacenamiento Ceph y copias en Proxmox Backup Server. Esta serie es la versión para empezar desde cero en casa, con un solo servidor, y sigue la documentación oficial de Proxmox VE 9.2.

En la parte 3 creamos máquinas virtuales. Ahora toca su hermano pequeño: los contenedores LXC.

Qué es un contenedor LXC

Una máquina virtual simula un ordenador entero, con su propio núcleo (kernel) y su propio sistema. Un contenedor LXC, en cambio, es un Linux que comparte el núcleo del anfitrión (Proxmox), pero con su propio sistema de archivos, usuarios, procesos y red.

Máquina virtual Contenedor LXC
Sistema operativo Cualquiera (Linux, Windows…) Solo Linux
Arranque Decenas de segundos Un par de segundos
Memoria Lo que le asignes, y el sistema entero Muy poca
Aislamiento Máximo Bueno, pero comparte núcleo

Para un servicio Linux sencillo (un servidor web, una base de datos de pruebas, un DNS…), un LXC es perfecto.

¿Y Docker?

Docker también usa contenedores, pero con otra filosofía: un contenedor por aplicación, efímero, creado desde una imagen. Un LXC es más bien un Linux completo que mantienes como un servidor pequeño: actualizas paquetes, entras por SSH, etc.

Paso 1: descargar una plantilla

Los contenedores se crean a partir de plantillas (sistemas base listos):

  1. Almacenamiento local → CT Templates → Templates.
  2. Elige, por ejemplo, Debian 13 o Ubuntu y pulsa Download.

Paso 2: crear el contenedor

Botón Create CT:

  • General:
    • CT ID y Hostname.
    • Unprivileged container: déjalo marcado (lo explico abajo).
    • Password de root y, mejor aún, tu clave SSH pública.
  • Template: la que descargaste.
  • Disks: 8 GB suelen bastar para un servicio pequeño.
  • CPU: 1 núcleo.
  • Memory: 512 MB; sube si el servicio lo pide.
  • Network: puente vmbr0, y DHCP o una IP fija (mejor fija para servicios).
  • DNS: el del anfitrión.

Finish, Start, y en un par de segundos está en marcha.

Para entrar desde la consola del anfitrión:

pct enter 105

(con el número de tu contenedor). O desde la web: Console.

Lo primero dentro, como en cualquier Debian:

apt update && apt full-upgrade

Sin privilegios: por qué importa

En un contenedor sin privilegios, el usuario root de dentro no es root en el anfitrión: Proxmox lo mapea a un usuario normal sin permisos especiales. Si alguien comprometiera el contenedor, tendría muchas más dificultades para dañar Proxmox.

Los contenedores con privilegios existen para casos muy concretos (ciertos montajes de red o de hardware), pero para empezar, siempre sin privilegios.

Compartir una carpeta del anfitrión

Si quieres que el contenedor acceda a una carpeta de Proxmox (por ejemplo, un disco de datos), se usa un punto de montaje:

pct set 105 -mp0 /mnt/datos,mp=/datos

Dentro del contenedor aparecerá como /datos. En contenedores sin privilegios, ojo con los permisos: los usuarios de dentro tienen otros números en el anfitrión, así que a veces hay que ajustar propietarios.

Cuándo NO usar un LXC

  • Si necesitas Windows u otro sistema que no sea Linux: VM.
  • Si necesitas un núcleo distinto o módulos de kernel propios: VM.
  • Para Docker: se puede ejecutar dentro de un LXC activando opciones como nesting, pero Proxmox recomienda ejecutar Docker dentro de una máquina virtual. Da menos problemas con actualizaciones y aislamiento. En el trabajo tengo algunos contenedores Docker dentro de un LXC y funcionan bien, pero para algo nuevo empezaría por una VM.
  • Si el aislamiento es crítico (algo expuesto a Internet): una VM separa mejor.

Mi regla para el laboratorio

  • Servicio Linux sencillo y de confianza → LXC.
  • Windows, Docker, o algo delicado → VM.

En la parte 5, la más importante: copias de seguridad e instantáneas, y por qué no son lo mismo.

Mini-quiz

¿Te has quedado con la idea?

Tres preguntas rápidas. Cada acierto suma 10 XP.

  1. ¿En qué se diferencia un contenedor LXC de una máquina virtual?
  2. ¿Por qué es mejor crear contenedores sin privilegios (unprivileged)?
  3. ¿Dónde recomienda Proxmox ejecutar Docker?
  • #proxmox
  • #lxc
  • #contenedores
  • #linux
  • #virtualizacion
Esc