Incus¶
En este artículo
- Incus. Características principales
- Funcionalidades de implementación
- Primeros pasos después de desplegar Incus
- Configuración inicial de la infraestructura
- Creación y gestión de contenedores
- Gestión de la configuración del contenedor
- Trabajo con instantáneas y migración
- Gestión de imágenes
- Interacción de red
- Gestión de almacenamiento
- Configuración de NAT y enrutamiento
- Pedido de un servidor con Incus mediante 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. Características principales¶
- 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: puentes, NAT, VLANs, redes superpuestas para contenedores.
- Gestión de almacenamiento: Sistema flexible de pools de almacenamiento que admite diferentes backends: dir, btrfs, ZFS, LVM.
- Instantáneas y migración: Creación de instantáneas del estado del contenedor, 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.
- API REST: API HTTP completa para 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 extensa colección de imágenes listas para usar de varias distribuciones Linux.
- Clustering: Capacidad para 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 | ORDER |
Rutas y archivos principales de Incus:
- Archivo de configuración principal:
/etc/default/incus - Directorio de datos:
/var/lib/incus - Pools de almacenamiento:
/var/lib/incus/storage-pools/ - Contenedores:
/var/lib/incus/containers/ - Imágenes:
/var/lib/incus/images/ - Archivo de registro:
/var/log/incus/incusd.log - Servicios del sistema:
/usr/lib/systemd/system/incus*.service - Configuración de Sysctl:
/etc/sysctl.d/50-incus.conf - Configuración de usuario:
/root/.config/incus/
Nota
A menos que se especifique lo contrario, instalamos por defecto la última versión de lanzamiento del software desde el sitio web del desarrollador o los repositorios del sistema operativo.
Primeros pasos después de desplegar 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 su uso. Incluirá la dirección IP del VPS y las credenciales de acceso. Los clientes de nuestra empresa gestionan el equipo a través de el Panel de gestión de servidores y API — Invapi.
Los datos de autenticación se pueden encontrar en la pestaña Configuration* >> **Tags del panel de gestión de servidores o en el correo electrónico enviado:
- Enlace para acceder a la interfaz web de Incus: en la etiqueta webpanel (puerto 8443, HTTPS)
Importante
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 no segura 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 agregar 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 copiarse:

-
Pegue el token obtenido en el campo de texto correspondiente en 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 a través de 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, lanzamiento, variante, arquitectura y tipo:

Las siguientes secciones de configuración están disponibles:
- Configuración principal — parámetros básicos del contenedor: nombre, descripción, tipo de instancia (contenedor o máquina virtual), imagen base y perfiles asignados;
- Dispositivos — gestión de dispositivos del contenedor:
- Disco — configuración del dispositivo de disco y punto de montaje;
- Red — configuración de la interfaz de red;
- GPU — conexión de aceleradores gráficos;
- Proxy — configuración de reenvío de puertos entre el host y el contenedor;
- Otros — tipos adicionales de dispositivos;
- Límites de recursos — limitación de recursos: procesador (CPU), RAM, operaciones de E/S de disco;
- Políticas de seguridad — políticas de seguridad: configuración de aislamiento, privilegios y perfiles de seguridad (AppArmor, SELinux);
- Instantáneas — gestión de instantáneas del estado del contenedor para copia de seguridad y recuperación;
- Migración — parámetros de migración de contenedores entre hosts;
- Inicio — configuración de inicio: orden de dispositivos de arranque, inicio automático al arrancar el sistema;
- Cloud init — configuración de inicialización automática del contenedor a través de cloud-init (usuarios, red, paquetes, scripts).
Seleccione la imagen deseada haciendo clic en el botón Select junto a ella:

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

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

Gestión de servicios¶
Comprobación del estado:
Reinicio del servicio:
Detención del servicio:
Inicio del servicio:
Visualización de registros:
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:
Comprobación de los pools de almacenamiento creados:
Para ver información detallada sobre un pool:
Configuración de red¶
Creación de un puente NAT para contenedores con direccionamiento IPv4 automático:
Comprobación de la configuración de red:
Visualización de la configuración de red:
Configuración del perfil predeterminado¶
El perfil default define la configuración básica para nuevos contenedores. Agregar un disco raíz al perfil:
Agregar una interfaz de red al perfil:
Comprobación de 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 del repositorio públicodeb12- nombre del contenedor--profile default- uso del perfil predeterminado-c limits.cpu=2- límite de 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¶
Inicio de un contenedor:
Detención de un contenedor:
Reinicio de un contenedor:
Eliminación de un contenedor (requiere detención previa):
Eliminación forzada de un contenedor en ejecución:
Acceso al contenedor¶
Conexión mediante bash:
Conexión a la consola TTY:
Para salir de la consola, utilice la combinación de teclas Ctrl+a q.
Reenvío de puertos¶
Para acceder a servicios dentro de un contenedor desde una red externa, se utiliza el reenvío de puertos a través de un dispositivo proxy:
Este comando reenvía 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¶
Visualización de la configuración completa expandida del contenedor:
Visualización de la configuración básica sin perfiles:
Cambio de parámetros¶
Establecimiento de parámetros de configuración:
Limitación de CPU:
Limitación de memoria:
Limitación de E/S de disco:
Inicio automático del contenedor:
Adición de dispositivos¶
Sintaxis general para agregar dispositivos:
Ejemplos:
Adición de un disco adicional:
Adición de una interfaz de red adicional:
Montaje de un directorio del host en un contenedor:
Eliminación de un dispositivo:
Trabajo con instantáneas y migración¶
Creación de instantáneas¶
Las instantáneas permiten guardar el estado del contenedor para su recuperación posterior:
Ejemplo:
Lista de instantáneas del contenedor:
Restauración desde una instantánea¶
Ejemplo:
Eliminación de una instantánea:
Renombrado y copia¶
Renombrado de un contenedor:
Copia de un contenedor en el mismo host:
Copia de un contenedor a otro host Incus:
Para trabajar con hosts remotos, primero debe agregar 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:
Búsqueda de una distribución específica:
Copia de imágenes¶
Copia de una imagen desde el repositorio público con actualización automática:
Copia de una imagen con alias:
Creación de una imagen desde un contenedor¶
Eliminación de imágenes¶
o por alias:
Interacción de red¶
Gestión de redes¶
Lista de redes:
Visualización de la configuración de red:
Creación de una nueva red:
# Creación de una red de puente
incus network create mybr0 \
ipv4.address=10.10.10.1/24 \
ipv4.nat=true \
ipv6.address=none
# Creación de una red macvlan
incus network create mymacvlan \
type=macvlan \
parent=eth0
Edición de una red:
Eliminación de una red:
Reglas de reenvío de red¶
Creación de una regla de reenvío para el reenvío de puertos:
Gestión de almacenamiento¶
Gestión de pools de almacenamiento¶
Lista de pools:
Visualización de información del pool:
Creación de un pool de almacenamiento:
Pool basado en dir:
Pool Btrfs:
Pool ZFS:
Edición de un pool:
Eliminación de un pool:
Gestión de volúmenes¶
Creación de 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
Copia de un volumen:
Eliminación de 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 de red de los contenedores a la red externa.
Cambio a nftables¶
Habilitación del reenvío de IP¶
Para una aplicación permanente, agregue a /etc/sysctl.conf:
Reinicio de Incus tras los cambios:
Configuración de la tabla NAT¶
Creación de la tabla NAT y la cadena POSTROUTING:
Adición de la regla de enmascaramiento 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 de su puente Incus.
Configuración de la cadena FORWARD¶
Creación de la tabla de filtro y la cadena FORWARD:
Adición de reglas para permitir el tráfico:
Permitir tráfico desde los contenedores hacia el exterior:
Permitir tráfico establecido/relacionado de vuelta:
nft insert rule ip filter FORWARD iifname "ens1" oifname "incusbr0" ct state established,related accept
Comprobación de reglas de nftables¶
Visualización de todas las reglas:
Guardado de reglas (para Debian/Ubuntu):
Instalación del paquete para guardar reglas:
Guardado de las reglas actuales:
Habilitación de la carga automática:
Nota
Información detallada sobre todas las capacidades de Incus se encuentra en la documentación oficial del desarrollador.
Pedido de un servidor con Incus mediante API¶
Para instalar este software mediante la API, siga estas instrucciones.
Parte del contenido de esta página fue creado o traducido utilizando IA.