No todas las cargas de trabajo necesitan una máquina virtual completa. Los contenedores LXC de Proxmox VE comparten el kernel del host, arrancan en uno o dos segundos y usan mucha menos RAM y disco que las VM KVM, lo que los hace ideales para sitios web, bases de datos, monitorización, proxies y herramientas internas en un servidor dedicado o un nodo host. Esta guía explica cómo descargar plantillas de contenedor, crear contenedores en la interfaz web y con pct, asignarles una IP pública o privada, limitar la CPU, la memoria, el disco y el ancho de banda, ejecutar Docker dentro de un contenedor y hacer copias de seguridad.
| Contenedor LXC | Máquina virtual KVM | |
|---|---|---|
| Sistemas operativos | Solo Linux | Linux, Windows, BSD |
| Sobrecarga | Muy baja, arranca en segundos | Mayor, arranque completo del sistema operativo |
| Aislamiento | Kernel compartido | Totalmente aislada |
| Ajuste del kernel y módulos | Limitado | Control total |
| Uso típico | Servicios propios, muchos sitios pequeños | VPS para clientes, Windows, hosts Docker |
Las plantillas son sistemas de archivos raíz ya preparados para Debian, Ubuntu, Rocky Linux, AlmaLinux, Alpine y otras distribuciones. En la interfaz web, abra local → CT Templates → Templates, o use la línea de comandos en el host. Los nombres de archivo de las plantillas incluyen un número de versión, así que copie el nombre exacto de la lista.
pveam update
pveam available --section system | grep -E 'debian-12|ubuntu-24.04|rockylinux-9|alpine'
pveam download local debian-12-standard_12.7-1_amd64.tar.zst # use the exact name from the list
pveam list local
En la interfaz web, haga clic en Create CT y siga el asistente: nombre de host y contraseña de root (o clave SSH), plantilla, tamaño de disco, núcleos de CPU, memoria y red. Deje marcada la opción Unprivileged container: asigna el root del contenedor a un usuario sin privilegios en el host y es mucho más seguro. El mismo contenedor desde la línea de comandos:
pct create 101 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname web01 \
--unprivileged 1 \
--cores 2 --memory 2048 --swap 512 \
--rootfs local-lvm:20 \
--net0 name=eth0,bridge=vmbr0,ip=203.0.113.11/24,gw=203.0.113.1 \
--nameserver 1.1.1.1 \
--ssh-public-keys /root/.ssh/authorized_keys \
--features nesting=1 \
--onboot 1
pct start 101
pct enter 101 # open a root shell inside the container
pct list
IP pública: conecte el contenedor al bridge que transporta su red pública (normalmente vmbr0) y asígnele una de sus IPs adicionales con la puerta de enlace de esa subred, exactamente igual que en una VM (consulte asignar una IP pública a una VM de Proxmox). Si sus IPs adicionales están enrutadas a una dirección MAC concreta, indíquela con hwaddr= en las opciones de net0.
NAT privada: para ejecutar muchos contenedores detrás de la única IP del host, colóquelos en un bridge privado como vmbr1 y redirija los puertos que necesite, como se describe en red NAT en Proxmox VE:
pct set 102 --net0 name=eth0,bridge=vmbr1,ip=10.10.10.12/24,gw=10.10.10.1
pct reboot 102
Todos los límites se pueden cambiar con el contenedor en marcha; la mayoría se aplican de inmediato.
# CPU: 2 visible cores, but at most 1.5 cores of total CPU time
pct set 101 --cores 2 --cpulimit 1.5
# Memory and swap (MB)
pct set 101 --memory 1024 --swap 256
# Grow the root disk by 10 GB (disks can grow online but not shrink)
pct resize 101 rootfs +10G
# Bandwidth: rate is in MB/s, so 12.5 is roughly 100 Mbps
pct set 101 --net0 name=eth0,bridge=vmbr0,ip=203.0.113.11/24,gw=203.0.113.1,rate=12.5
pct config 101
Docker funciona en un contenedor sin privilegios cuando nesting está activado. Algunas imágenes también necesitan la función keyctl.
pct set 101 --features nesting=1,keyctl=1
pct reboot 101
pct enter 101
# inside the container, install Docker as usual (see our Docker guide)
Para hosts Docker de producción, sobre todo los que tienen muchos contenedores o drivers de almacenamiento especiales, una VM KVM sigue siendo la opción más predecible.
# Snapshot before risky changes (requires LVM-thin, ZFS or Ceph storage)
pct snapshot 101 before-upgrade
pct rollback 101 before-upgrade
# Full backup with compression (see our Proxmox backup guide for schedules)
vzdump 101 --mode snapshot --storage local --compress zstd
# Clone a container you have prepared as a base
pct clone 101 105 --hostname web05 --full 1
Para copias de seguridad programadas y restauraciones, consulte copias de seguridad y snapshots en Proxmox VE.
Compruebe la IP, el prefijo y la puerta de enlace en pct config, que el bridge sea el correcto y el DNS en /etc/resolv.conf dentro del contenedor. Desde dentro, pruebe ping -c3 1.1.1.1 y después ping -c3 google.com para distinguir los problemas de enrutamiento de los de DNS. Compruebe también que el firewall de Proxmox no esté bloqueando el contenedor.
No directamente. Cree una VM y migre los datos o la aplicación, por ejemplo con rsync (consulte nuestra guía de migración de servidores).
Depende de la carga de trabajo, no de Proxmox. Como los contenedores tienen muy poca sobrecarga, un servidor con 64 GB de RAM puede alojar sin problemas decenas de sitios web o servicios pequeños. Vigile la RAM, la E/S de disco y el CPU steal del host, y deje margen para los picos.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión de Proxmox VE, el ID y la configuración del contenedor (pct config ID) y la salida completa del error para que podamos localizar el problema más rápido.