Incus¶
En este artículo
- Incus. Funcionalidades clave
- Funcionalidades de implementación
- Primeros pasos tras la implementación de Incus
- Configuración inicial de la infraestructura
- Creación y gestión de contenedores
- Gestión de la configuración del contenedor
- Trabajar con snapshots y migración
- Gestión de imágenes
- Interacción de red
- Gestión de almacenamiento
- Configuración de NAT y enrutamiento
- Pedir un servidor con Incus mediante la API
Información
Incus es un gestor de contenedores de sistema y máquinas virtuales de código abierto. Es un fork de LXD y proporciona una herramienta sencilla pero potente para gestionar contenedores Linux y máquinas virtuales en una plataforma unificada.
Incus. Funcionalidades clave¶
- Gestión de contenedores y VM: Incus permite ejecutar contenedores de sistema Linux y máquinas virtuales QEMU/KVM completas a través de una única interfaz.
- Aislamiento de procesos: Los contenedores operan en un entorno aislado con sus propios sistemas de archivos, interfaces de red y procesos.
- Capacidades de red: Soporte integrado para varios tipos de redes: bridges, NAT, VLANs y redes overlay para contenedores.
- Gestión de almacenamiento: Sistema de pool de almacenamiento flexible que admite diferentes backends: dir, btrfs, ZFS, LVM.
- Snapshots y migración: Creación de snapshots del estado del contenedor y migración en vivo entre hosts sin detener los servicios.
- Perfiles de configuración: Perfiles reutilizables para el despliegue rápido de contenedores con parámetros predefinidos.
- Limitación de recursos: Control preciso sobre la CPU, memoria, E/S de disco y ancho de banda de red para cada contenedor.
-
REST API: API HTTP con todas las funciones para la automatización e integración con sistemas externos.
-
Interfaz web: Panel de gestión web integrado para el control visual de la infraestructura.
- Biblioteca de imágenes: Acceso a una amplia colección de imágenes listas para usar de varias distribuciones Linux.
- Clústeres: Capacidad de combinar múltiples hosts en un único clúster para una gestión distribuida.
Funcionalidades de implementación¶
| ID | Nombre del Software | SO Compatible | VM | BM | VGPU | GPU | CPU Mín. (Núcleos) | RAM Mín. (GB) | HDD/SSD Mín. (GB) | Dominio Personalizado | Activo |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 234 | Linux Containers Incus | Debian 13 | + | + | + | + | 2 | 2 | 50 | No | PEDIR |
Para obtener información sobre las funcionalidades de implementación de este software, consulte este enlace.
Nota
A menos que se especifique lo contrario, instalamos por defecto la última versión de lanzamiento del software desde el sitio del desarrollador o los repositorios del sistema operativo.
Primeros pasos tras la implementación de Incus¶
Tras el pago, se enviará una notificación por correo electrónico a la dirección especificada durante el registro indicando que el servidor está listo para operar. Incluirá la dirección IP del VPS y las credenciales de acceso. Los clientes de nuestra empresa gestionan el equipo a través del Server Management Panel and API — Invapi.
Los datos de autenticación pueden encontrarse en la pestaña Configuration >> Tags del panel de gestión del servidor o en el correo electrónico enviado:
- Enlace para acceder a la interfaz web de Incus: en la etiqueta webpanel (puerto 8443, HTTPS)
Atención
Para acceder a la interfaz web, debe utilizar HTTPS y aceptar el certificado autofirmado en su navegador.
Al acceder por primera vez a la interfaz web de Incus, el navegador advertirá sobre una conexión insegura debido al certificado autofirmado. Debe aceptar el certificado para continuar:

Tras aceptar el certificado, se abrirá la página de inicio de sesión. Haga clic en el botón Login with TLS para iniciar el proceso de autenticación:

El sistema le redirigirá a la página para añadir un certificado existente:

Seleccione la pestaña Trust token y siga las instrucciones:
-
En la terminal del servidor, ejecute el comando para generar un token:
-
El sistema generará un token que debe ser copiado:

-
Pegue el token obtenido en el campo de texto correspondiente de la página de autenticación y haga clic en
Import.
Tras una autenticación exitosa, se abrirá la página principal de la interfaz web con la lista de instancias.
Creación de un nuevo contenedor mediante la interfaz web¶
Para crear un nuevo contenedor, haga clic en el botón Create instance en la esquina superior derecha de la interfaz:

Se abrirá un formulario de creación de instancia con varias secciones de configuración. Para seleccionar una imagen base, haga clic en el botón Browse images. Se abrirá una ventana de selección de imágenes con filtros por distribución, versión, variante, arquitectura y tipo:

Las siguientes secciones de configuración están disponibles:
- Main configuration — parámetros básicos del contenedor: nombre, descripción, tipo de instancia (contenedor o máquina virtual), imagen base y perfiles asignados;
- Devices — gestión de dispositivos del contenedor:
- Disk — configuración del dispositivo de disco y punto de montaje;
- Network — configuración de la interfaz de red;
- GPU — conexión de aceleradores gráficos;
- Proxy — configuración de redireccionamiento de puertos entre el host y el contenedor;
- Other — tipos de dispositivos adicionales;
- Resource limits — limitación de recursos: procesador (CPU), RAM, operaciones de E/S de disco;
- Security policies — políticas de seguridad: configuración de aislamiento, privilegios y perfiles de seguridad (AppArmor, SELinux);
- Snapshots — gestión de snapshots del estado del contenedor para respaldo y recuperación;
- Migration — parámetros de migración del contenedor entre hosts;
- Boot — ajustes de arranque: orden de dispositivos de arranque, inicio automático al arrancar el sistema;
- Cloud init — configuración de inicialización automática del contenedor mediante cloud-init (usuarios, red, paquetes, scripts).
Seleccione la imagen deseada haciendo clic en el botón Select junto a ella:

Tras seleccionar una imagen, rellene los parámetros básicos:

- Instance name — nombre del contenedor;
- Description — descripción (opcional);
- Instance type — tipo de instancia (Container o Virtual Machine);
- Profiles — perfiles de configuración.
Para iniciar el contenedor inmediatamente después de la creación, haga clic en Create and start. Para crearlo sin iniciarlo, utilice el botón Create.
Monitorización del estado del contenedor¶
Durante el despliegue del contenedor, se muestra el progreso de la descarga de la imagen. El estado "Setting up" con la indicación de progreso de descarga muestra el progreso actual de la creación de la instancia. Una vez completada la instalación, el estado cambiará a "Running" con un indicador verde:

Gestión de servicios¶
Comprobar estado:
Reiniciar servicio:
Detener servicio:
Iniciar servicio:
Ver logs:
Configuración inicial de la infraestructura¶
Tras el despliegue del servidor, se recomienda realizar la configuración inicial de la infraestructura de Incus.
Creación de un pool de almacenamiento¶
Un pool de almacenamiento define dónde se almacenarán los datos del contenedor:
Comprobar los pools de almacenamiento creados:
Para ver información detallada sobre un pool:
Configuración de red¶
Crear un bridge NAT para contenedores con direccionamiento IPv4 automático:
Comprobar la configuración de red:
Ver la configuración de red:
Configuración del perfil predeterminado¶
El perfil default define la configuración básica para los nuevos contenedores. Añadir un disco raíz al perfil:
Añadir una interfaz de red al perfil:
Comprobar la configuración del perfil:
Creación y gestión de contenedores¶
Creación de un contenedor¶
Ejemplo de creación de un contenedor Debian 12 con límites de recursos:
Parámetros del comando:
images:debian/12- imagen desde el repositorio públicodeb12- nombre del contenedor--profile default- uso del perfil predeterminado-c limits.cpu=2- límite a 2 núcleos de CPU-c limits.memory=2GiB- límite de memoria de 2 GB
Visualización de contenedores¶
Lista de todas las instancias:
La salida contendrá información sobre el estado, las direcciones IP y el tipo de cada contenedor.
Gestión del estado del contenedor¶
Iniciar un contenedor:
Detener un contenedor:
Reiniciar un contenedor:
Eliminar un contenedor (requiere detenerlo):
Eliminar por la fuerza un contenedor en ejecución:
Acceso al contenedor¶
Conectarse mediante bash:
Conectarse a la consola TTY:
Para salir de la consola, utilice la combinación de teclas Ctrl+a q.
Redireccionamiento de puertos (Port Forwarding)¶
Para acceder a los servicios dentro de un contenedor desde una red externa, se utiliza el redireccionamiento de puertos mediante un dispositivo proxy:
Este comando redirige el puerto 8080 del host al puerto 80 del contenedor.
Ejemplo para múltiples puertos:
HTTP:
HTTPS:
SSH:
Gestión de la configuración del contenedor¶
Visualización de la configuración¶
Ver la configuración completa y expandida del contenedor:
Ver la configuración básica sin perfiles:
Cambio de parámetros¶
Establecer parámetros de configuración:
Limitación de CPU:
Limitación de memoria:
Limitación de E/S de disco:
Autoinicio del contenedor:
Añadir dispositivos¶
Sintaxis general para añadir dispositivos:
Ejemplos:
Añadir un disco adicional:
Añadir una interfaz de red adicional:
Montar un directorio del host en un contenedor:
Eliminar un dispositivo:
Trabajar con snapshots y migración¶
Creación de snapshots¶
Los snapshots permiten guardar el estado del contenedor para una recuperación posterior:
Ejemplo:
Lista de snapshots del contenedor:
Restaurar desde un snapshot¶
Ejemplo:
Eliminar un snapshot:
Renombrar y copiar¶
Renombrar un contenedor:
Copiar un contenedor en el mismo host:
Copiar un contenedor a otro host Incus:
Para trabajar con hosts remotos, primero debe añadir un remoto:
Gestión de imágenes¶
Visualización de imágenes¶
Lista de imágenes locales:
Lista de imágenes en el repositorio remoto:
Buscar una distribución específica:
Copiar imágenes¶
Copiar una imagen desde el repositorio público con actualización automática:
Copiar una imagen con un alias:
Creación de una imagen desde un contenedor¶
Eliminación de imágenes¶
o por alias:
Interacción de red¶
Gestión de red¶
Lista de redes:
Ver la configuración de red:
Crear una nueva red:
# Creando una red bridge
incus network create mybr0 \
ipv4.address=10.10.10.1/24 \
ipv4.nat=true \
ipv6.address=none
# Creando una red macvlan
incus network create mymacvlan \
type=macvlan \
parent=eth0
Editar una red:
Eliminar una red:
Reglas de redireccionamiento de red (Forwarding)¶
Crear una regla de reenvío para el redireccionamiento de puertos:
Gestión de almacenamiento¶
Gestión de pools de almacenamiento¶
Lista de pools:
Ver información del pool:
Crear un pool de almacenamiento:
Pool basado en directorio (dir):
Pool Btrfs:
Pool ZFS:
Editar un pool:
Eliminar un pool:
Gestión de volúmenes¶
Crear un volumen personalizado:
Lista de volúmenes en un pool:
Adjuntar un volumen a un contenedor:
incus config device add <container> <device-name> disk \
pool=<pool-name> \
source=<volume-name> \
path=/mount/path
Copiar un volumen:
Eliminar un volumen:
Configuración de NAT y enrutamiento¶
En algunos casos, puede ser necesaria la configuración manual de reglas de NAT y enrutamiento para proporcionar acceso a la red externa al contenedor.
Cambiar a nftables¶
Habilitar el reenvío de IP (IP forwarding)¶
Para una aplicación permanente, añada a /etc/sysctl.conf:
Reiniciar Incus tras los cambios:
Configuración de la tabla NAT¶
Crear la tabla NAT y la cadena POSTROUTING:
Añadir una regla de masquerade para la subred del contenedor:
Nota
Reemplace ens1 con el nombre de su interfaz de red externa y 10.1.4.0/24 con la subred del bridge de Incus.
Configuración de la cadena FORWARD¶
Crear la tabla filter y la cadena FORWARD:
Añadir reglas para permitir el tráfico:
Permitir tráfico desde los contenedores hacia el exterior:
Permitir el regreso del tráfico establecido/relacionado:
nft insert rule ip filter FORWARD iifname "ens1" oifname "incusbr0" ct state established,related accept
Comprobar las reglas de nftables¶
Ver todas las reglas:
Guardar reglas (para Debian/Ubuntu):
Instalar el paquete para guardar reglas:
Guardar las reglas actuales:
Habilitar la carga automática:
Nota
La información detallada sobre todas las capacidades de Incus se encuentra en la documentación oficial para desarrolladores.
Pedir un servidor con Incus mediante la API¶
Para instalar este software utilizando la API, siga estas instrucciones.