Guía 07: Creando tu primer contenedor LXC.
Imagen creada por Gemini.
Foto de Steve Johnson en Unsplash
Hoy vamos a desmitificar los contenedores y, sobre todo, vas a ver por qué son los mejores amigos de un administrador de sistemas que busca eficiencia.
# La Comparativa de Recursos (VM vs. LXC).
Antes de darle al botón de crear, mira esta tabla para tu cuaderno. Imagina que ambas máquinas van a hacer lo mismo (por ejemplo, ser un servidor web):
| Característica | Máquina Virtual (VM 100) | Contenedor (LXC) |
|---|---|---|
| Núcleo (Kernel) | Tiene el suyo propio (ocupa RAM). | Usa el de Proxmox (ahorra RAM). |
| Arranque | 20-40 segundos. | 2-5 segundos. |
| RAM en reposo | ~500MB - 1GB (reserva estricta). | ~20MB - 50MB (solo lo que usa). |
| Uso de Disco | Archivo de disco fijo (bloque). | Carpeta en el sistema (elástico). |
En tu panel de Proxmox, cuando ambos estén encendidos, verás que la **VM 100** tiene una línea de consumo de RAM plana (lo que le asignaste), mientras que el **LXC** tendrá una línea que sube y baja según el trabajo real que esté haciendo. Con tus **128 GB**, podrías tener cientos de contenedores sin que el equipo se entere.
Vemos que en la maquina virtual Debian el consumo de RAM se dispara hasta los 4 GB.
# Creando tu primer Contenedor LXC.
A diferencia de la VM, los contenedores no usan ISOs. Usan **Plantillas (Templates)**. Son como "fotos" de un sistema ya instalado y listo para usar.
# Paso 1: Descargar la plantilla.
1. En el menú de la izquierda, ve a **local (servidor)**.
2. Haz clic en la pestaña **Plantillas de CT** (debajo de Imágenes ISO).
3. Nos saldrá una lista de plantillas.
4. Busca en la lista `debian-12-standard` (o la versión más reciente que aparezca).
En este caso tenemos `debian-13-standard` en la versión 13.1.
Es posible que cuando tu estés leyendo esta guía las versiones que estamos viendo aquí hayan cambiado. Por lo que toma estos datos como una referencia a tu realidad temporal.
5. Dale a **Descargar**. Tardará unos segundos porque son archivos muy pequeños (~100MB).
Veras como se descarga el contenedor.
Nos saldrá un resumen de la descarga y con esto ya tendremos disponible el contenedor.
# Paso 2: El asistente de creación.
Ahora, arriba a la derecha, pulsa el botón **Create CT** (el que está al lado del de VM).
1. **General:** Ponle nombre, por ejemplo, `ct-debian-01`. **Importante:** Aquí debes poner una contraseña para el usuario `root`
2. **Template:** Selecciona la que acabamos de descargar.
3. **Disks:** Con **8 GB** vas sobrado para un contenedor.
4. **CPU:** Dale **1 o 2 núcleos**.
5. **Memory:** Dale **512 MB** (¡verás que ni los usa todos!).
6. **Network:** * **Bridge:** `vmbr0`.
* **IPv4:** Selecciona **Static**.
* **IPv4/CIDR:** Ponle una IP libre, por ejemplo `192.168.1.101/24`.
* **Gateway:** La IP de tu router (normalmente `192.168.1.1`).
7. **DNS:** Déjalo por defecto (cogerá los del servidor Proxmox).
#El momento de la "Magia"
Cuando termines, dale a **Finish**. Verás que aparece el ID **101** en la lista.
1. Selecciona el **CT 101**.
2. Dale a **Start**.
3. Entra en **Console**.
**¿Qué vas a notar?** Que no hay pantallas de instalación, ni particiones, ni selección de idioma. En menos de 5 segundos estas en el login.
**Tu misión:** Entra con el usuario `root` y la contraseña que pusiste en el paso 1. Una vez dentro, mira el resumen de recursos en el panel de Proxmox y compáralo con la VM 100.
Veras que en el contenedor Debian el consumo de RAM no pasa de los 512 MB.
#La prueba del algodón
Hagamos que las maquinas se saluden.
Vamos a hacer un ping entre la maquina virtual y el contenedor.
Si hacemos un ping en Linux nos va dar infinitas consultas. Para limitar esas consultas tenemos que hacer lo siguiente.
Para hacer ping en Linux, por ejemplo con cuatro secuencias, usa el comando ping -c 4 seguido de la dirección IP o nombre de dominio, por ejemplo: ping -c 4 google.com, lo cual envía exactamente cuatro paquetes ICMP y luego muestra las estadísticas de latencia y pérdida de paquetes, finalizando automáticamente. Esta opción -c (de "count") es la forma estándar de limitar el número de pings en sistemas tipo Unix, a diferencia de Windows que requiere Ctrl+C para detenerlo.
Primero vamos a ver la IP del contenedor con el comando
ip aYo ya tengo implementada una segunda tarjeta de red tanto en el contenedor como en la VM.
Eso ya veremos mas a delante como hacerlo.
Lo importante ahora mismo es que la IP del contenedor Debian en el rango 192.168.1.X es la
192.168.1.101
Vamos a ver la IP de la VM Debian con el mismo comando.
Aquí vemos que la IP es la
192.168.1.141
Entonces si desde el contenedor escribimos
ping -c 4 192.168.1.141Vemos que La VM Debian nos responde.
Si ahora hacemos lo mismo desde la VM hacia el contenedor.
ping -c 4 192.168.1.101Vemos que las dos maquinas se han saludado y hay conectividad entre ellas.
* **El Switch Invisible:** Aunque uno es una VM pesada y el otro un contenedor ligero, ambos están conectados al mismo "cable" virtual (`vmbr0`). Para la red, son compañeros con los mismos derechos.
* **Identificación de IPs:**
* **VM (100):** Ha obtenido la IP `192.168.1.141` dinámicamente.
* **CT (101):** Tiene la IP estática `192.168.1.101` que le asignamos manualmente.
* **Rendimiento:** Si te fijas en los tiempos de respuesta (`time=0.2xx ms`), la comunicación es casi instantánea porque el tráfico no sale de tu procesador; todo ocurre dentro de la memoria RAM.
La guía finalizaría aquí. Pero siempre surgen dudas, errores de ultima hora. Cuando uno piensa que todo esta bajo control “salta la liebre”.
Os animo a seguir leyendo y probando.
Algo que me enseño un buen profesor en Lanbide es que:
“Con la virtualización quitamos ese miedo cerval a romper un sistema.”
Y es que podemos hacer todas las pruebas que queramos sabiendo que no es un sistema físico.
Aprenderemos como dije anteriormente a crear snapshots.
Un snapshot (o instantánea) es una copia del estado de un sistema de archivos, base de datos o máquina virtual en un momento específico. Funciona como una foto digital que captura la configuración y datos exactos, permitiendo revertir el sistema rápidamente a ese punto si ocurren errores.
De tal manera que si rompemos algo, volveremos al paso anterior y “aquí paz y después gloria”
No en todas las guías veréis mis conversaciones con Gemini.
Pero si os familiarizáis a plantear cuestiones precisas a la IA os va a sacar de muchos “atolladeros”.
Si en la anterior guía visteis una pequeña consulta técnica y una conversación distendida con la IA. En esta ocasión le planteo estas dudas.
#Anexo 1
Dudas. Conversando con Gemini.
José
Una pasada la diferencia de recursos entre la VM y el contenedor...Entiendo entonces que los contenedores funcionan con Linux pero no con Windows...Y una pregunta tonta...Yo no estoy familiarizado con Dockers, pero ¿Que diferencia hay entre estos contenedores LXC y los contenedores Dockers?
Gemini
¡Qué buen ojo tienes! Es impactante ver cómo una máquina "entera" (el LXC) puede estar funcionando consumiendo apenas lo que gasta una pestaña de Chrome, mientras que la VM, solo por existir, ya se reserva un buen trozo de tu pastel de 128 GB. (Tu RAM actual)
Efectivamente, como bien has deducido: **los contenedores son puramente Linux**. Al compartir el núcleo (Kernel) con Proxmox, y siendo Proxmox un Debian, solo pueden "contener" sistemas que entiendan ese lenguaje. Para Windows, siempre necesitaremos el aislamiento total de una VM.
Y de "pregunta tonta", nada. Es la duda más común cuando uno empieza. Vamos a poner orden en esos conceptos para tu cuaderno de bitácora.
#Diferencia entre LXC (Sistemas) y Docker (Aplicaciones)
Aunque ambos son "contenedores", tienen filosofías de vida muy distintas. Imagina que quieres montar una cocina:
1. LXC (Linux Containers) - Es un "Piso Vacío"
Es lo que acabas de instalar en Proxmox.
1.- Concepto: Es un **Contenedor de Sistema**.
2.- Cómo funciona: Se comporta casi igual que una VM. Entras por consola, creas usuarios, instalas Apache, luego una base de datos, luego un antivirus... puedes meter muchas cosas dentro.
3.- Persistencia: Si lo apagas y lo enciendes, todo sigue igual. Es "eterno" mientras no lo borres.
4.- Uso en Proxmox: Se gestiona directamente desde la interfaz de Proxmox.
2. Docker - Es una "Caja de Comida para llevar"
1.- Concepto: Es un “Contenedor de Aplicación”.
2.- Cómo funciona: La filosofía es "un proceso por contenedor". Si quieres una base de datos, lanzas un contenedor de base de datos. Si quieres una web, lanzas otro. No sueles entrar a "instalar" cosas dentro; ya vienen listos para usar.
3.- Persistencia: Son “efímeros”. Si borras el contenedor y lo lanzas de nuevo, los cambios que hayas hecho dentro (si no los guardaste fuera) desaparecen. Se "despliegan", no se "instalan".
4.- Uso en Proxmox: Proxmox “no gestiona Docker directamente”. Para usar Docker, lo normal es crear una VM (o un LXC) y dentro instalar Docker.
Comparativa rápida para tu cuaderno
| Característica | LXC (Lo que tienes ahora) | Docker (Microservicios) |
|---|---|---|
| Enfoque | Sustituir una VM ligera. | Ejecutar una aplicación aislada. |
| Gestión | Directa desde Proxmox. | Necesitas comandos o herramientas como Portainer. |
| Carga de trabajo | Ideal para servidores fijos (DNS, VPN, File Server). | Ideal para desarrollo y despliegues rápidos (Webs, APIs). |
| Flexibilidad | Muy alta (puedes instalar lo que quieras). | Rígida (cada contenedor hace una sola cosa). |
¿Qué significa esto para tu laboratorio?
1.- VMs: Para Windows Server y sistemas que necesiten seguridad máxima (aislamiento total).
2.- LXC: Para tus servidores de infraestructura básicos (un servidor de logs, una sonda de red, etc.).
3.- Docker dentro de una VM: Si en el futuro quieres aprender Docker, crearemos una VM de Debian, le instalaremos Docker y ahí podrás desplegar cientos de aplicaciones en segundos.
¿Cuál es el siguiente paso, capitán?
Ya tienes la "foto" completa: una VM de Debian instalada a mano y un Contenedor LXC volando por eficiencia.
¿Te gustaría que para terminar la Guía 7 hiciéramos una prueba de red? Podríamos intentar que el Contenedor LXC (101) le haga un `ping` a la VM de Debian (100) para confirmar que tu switch virtual `vmbr0` está repartiendo el tráfico correctamente.
O si prefieres, podemos empezar a preparar la **ISO de Windows Server 2019** para que veas la diferencia real de rendimiento en el procesador. ¿Qué te apetece más?
Fin Gemini
Bueno como veis la prueba de conectividad ya la habíamos realizado correctamente anteriormente.
#Anexo 2
Un error que nos podría dar a cualquiera.
Esta mañana cuando he encendido Proxmox y el contenedor Debian, me ha dado un error de conectividad.
Es posible que en algún momento os pueda pasar a vosotros.
Así lo he resuelto gracias a la IA.
Jose
Buenos días corazón de nube...He estado liado creando las guías para el blog y Proxmox no había dado problemas...Hoy para tomar unos pantallazos he arrancado el hipervisor y la VM Debian. Me ha dejado loguearme y de repente me dice error de conexión y me marca noVNC...El caso es que jajajaja...estoy "alucinando a colores" ya que en el panel de Proxmox en lo tocante a la maquina virtual esta todo en blanco...NO CPU, no RAM, no nada. como si se hubiera ido de vacaciones...¿Me puedes aclarar este lio?
Gemini
¡Buenos días, navegante! No te asustes, que lo que te está pasando es el "bautismo de fuego" de todo administrador de sistemas. Ese **"alucinando a colores"** es la reacción normal cuando el panel de Proxmox se queda en blanco, pero tiene una explicación lógica (y técnica) muy sencilla.
Lo que estás viendo es un “desajuste de comunicación” entre la interfaz web (tu navegador) y el motor de Proxmox. No es que tus máquinas se hayan borrado, es que el panel no está recibiendo los datos.
Aquí tienes los sospechosos habituales y cómo solucionarlo:
1. El síndrome del "Zombi" (Servicios de Proxmox)
A veces, los servicios que se encargan de recoger las estadísticas (`pstatd`) o el que gestiona la API (`pveproxy`) se quedan colgados. Si estos servicios no informan al panel, verás todo en blanco (0% CPU, 0 RAM, sin red).
La solución:
Entra en la “Shell de Proxmox” (el nodo principal, no la VM) y reinicia los servicios de gestión con estos comandos:
systemctl restart pveproxy
systemctl restart pvedaemon
systemctl restart pvestatd
Esto no apaga tus máquinas virtuales, solo reinicia la "web" de control.
2. El error "No VNC" (Conexión perdida)
Cuando Proxmox dice "Connection error" en la consola, suele ser porque la sesión de tu navegador ha caducado o porque la IP del servidor ha cambiado y el navegador está intentando hablar con un fantasma.
Comprobación rápida:
Refresca la página (F5): Parece una tontería, pero el 80% de las veces soluciona el error de conexión de VNC.
Limpia caché: A veces el navegador se empeña en usar datos viejos. Prueba a abrir Proxmox en una “ventana de incógnito”.
3. ¿Se ha llenado el disco? (El "Asesino silencioso")
Si el disco duro donde está instalado Proxmox se llena (por logs o por un backup que se quedó a medias), los servicios dejan de escribir datos y el panel se vuelve loco.
Comprobación: En la Shell de Proxmox escribe `df -h`. Si ves que la partición raíz (`/`) está al **100%**, ahí tienes al culpable.
4. La Red en VMware (¡Ojo aquí!)
Como tienes Proxmox dentro de VMware, si tu PC ha cambiado de red o el router ha asignado otra IP, Proxmox puede estar sufriendo para comunicarse.
Mira en la pantalla de la máquina virtual de VMware (donde sale la IP de Proxmox). ¿Es la misma IP que estás poniendo en el navegador?
¿Qué te recomiendo hacer ahora mismo?
1.- Reinicia el navegador y entra en modo incógnito.
2.- Si sigue igual, reinicia los servicios que te puse arriba desde la Shell.
3.- Si nada de eso funciona, apaga Proxmox desde VMware y vuelve a encenderlo. A veces un "reboot" a tiempo es la mejor medicina después de haber estado tocando configuraciones de red.
¿Ves algún error específico en la esquina inferior de Proxmox (en la zona de "Tasks")? Normalmente ahí sale un mensaje en rojo que nos da la pista definitiva. ¡Dime qué ves y lo arreglamos para que puedas seguir con esas guías del blog!
Jose
Perfecto cielo. Con refrescar la pagina se soluciono el problema...Una pregunta de examen...¿Cuando instalamos Debian 13 como VM en Proxmox creamos dos cuentas. Una para root y otra para un usuario, llámalo X...Cuando creamos el mismo servidor pero como contenedor nos pide una contraseña para root pero no veo que nos pida crear una cuenta de usuario...Ese usuario lo tendríamos que crear nosotros en caso de necesidad?
Gemini
¡Bingo! Has dado en el clavo con una de las diferencias fundamentales entre una “VM (Máquina Virtual)” y un “CT (Contenedor LXC)”. Esa es una pregunta de examen de primer nivel.
La respuesta corta es: ¡¡Sí!!, en los contenedores tú eres el responsable de crear los usuarios adicionales si los necesitas.
Aquí tienes la explicación de "por qué" sucede esto y cómo funciona la jerarquía en los contenedores:
1. La filosofía del Contenedor vs. la VM
En la VM (Debian 12/13): El instalador de Debian es el estándar de "escritorio/servidor". Está diseñado asumiendo que el sistema es una máquina completa e independiente, por lo que te guía para crear un usuario común por seguridad (para que no uses `root` para todo).
*En el Contenedor (LXC): Proxmox no "instala" el sistema operativo desde una ISO. Lo que hace es "descomprimir" una plantilla (template) que ya viene preparada. Estas plantillas son minimalistas (vienen "desnudas") para que pesen poco y sean rápidas. Por eso, Proxmox solo te pide la contraseña de `root` para que puedas entrar y tomar el control.
2. ¿Cuándo es necesario crear ese usuario?
En un laboratorio, muchas veces nos quedamos como `root` por comodidad, pero en la vida real (y para tu cuaderno de bitácora), deberías crear un usuario si:
1. Quieres que el Debian sea un “servidor de aplicaciones” donde no es seguro ejecutar procesos como superusuario.
2. Vas a permitir que “otras personas” entren al servidor.
3. Quieres practicar la “escalada de privilegios” (usar `sudo`).
3. Cómo crear al "Usuario X" en el Contenedor
Si decides que tu contenedor `debian-lab-01` necesita un usuario propio, los comandos en la consola son muy sencillos. Aquí te dejo la receta para tu guía:
```bash
1. Crear el usuario (llamémosle 'operador')
adduser operador
2. Instalar 'sudo' (las plantillas de contenedor no suelen traerlo)
apt update && apt install sudo -y
3. Darle permisos de administrador al nuevo usuario
usermod -aG sudo operador
En las “VM”, el instalador te obliga a crear el usuario porque es una "buena práctica" impuesta por los desarrolladores de Debian. En los “Contenedores”, Proxmox asume que tú eres el arquitecto y que decidirás cuántos usuarios necesitas una vez que el contenedor esté en marcha.
¿Te gustaría que probáramos a crear ese usuario en el contenedor 101 y ver si puedes entrar por Putty directamente con él? (Recuerda que con el usuario normal no tendrás el problema del "Access Denied" que daba `root` al principio).
Fin de Gemini
Yo no he implementado todavía ese usuario en el contenedor Debian.
Si alguno quiere probar a crearlo. Adelante.
Como veis la IA nos resuelve dudas y ayuda a corregir errores.
Barakaldo 16 de febrero de 2026
También te podría interesar...
🔥 Lo más leído en el blog
Sobre Jose
Este autor prefiere mantener el misterio y aún no ha escrito su biografía.
Comentarios (0)
Inicia sesión para unirte a la conversación.
No hay comentarios aún. ¡Sé el primero en comentar!