Máquinas virtuales y contenedores
Este artículo cubre varias tecnologías de virtualización y contenedores de sistemas disponibles en Ubuntu 26.04.
Verifique el soporte de virtualización de hardware
Antes de comenzar, confirme que su CPU admita la virtualización de hardware:
# Check for virtualization support
egrep -c '(vmx|svm)' /proc/cpuinfoUn resultado mayor que 0 indica soporte. También puedes usar cpu-checker:
sudo apt install cpu-checker -y
kvm-okKVM/QEMU
KVM (máquina virtual basada en kernel) es una solución de virtualización integrada en el kernel de Linux. Combinado con QEMU, proporciona capacidades completas de virtualización.
Instalar KVM y herramientas relacionadas
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager -yAgregue el usuario actual a los grupos requeridos:
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USERCierre sesión y vuelva a iniciarla para que los cambios del grupo surtan efecto.
Verificar la instalación
# Check libvirt service status
sudo systemctl status libvirtd
# Verify connection
virsh list --allUsando virt-manager (GUI)
virt-managervirt-manager proporciona una interfaz gráfica intuitiva para crear y administrar máquinas virtuales.
Crear una VM a través de la línea de comando
# Create a disk image
qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 40G
# Install a VM from ISO
virt-install \
--name ubuntu-vm \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=40 \
--os-variant ubuntu26.04 \
--network bridge=virbr0 \
--graphics vnc \
--cdrom /path/to/ubuntu-26.04-desktop-amd64.isoEjecute osinfo-query os | grep ubuntu para confirmar si su osinfo-db local incluye ubuntu26.04. De lo contrario, actualice osinfo-db, recurra al ubuntu24.04 más cercano o use --osinfo detect=on,require=off para permitir que virt-install se detecte automáticamente.
Comandos virsh comunes
# List all VMs
virsh list --all
# Start a VM
virsh start ubuntu-vm
# Shut down a VM
virsh shutdown ubuntu-vm
# Force stop
virsh destroy ubuntu-vm
# Suspend and resume
virsh suspend ubuntu-vm
virsh resume ubuntu-vm
# Create snapshots
virsh snapshot-create-as ubuntu-vm --name "clean-install"
virsh snapshot-list ubuntu-vm
virsh snapshot-revert ubuntu-vm --snapshotname "clean-install"
# Delete a VM
virsh undefine ubuntu-vm --remove-all-storageUsando QEMU directamente
Sin libvirt, usando QEMU directamente:
# Create a disk
qemu-img create -f qcow2 disk.qcow2 20G
# Start a VM
qemu-system-x86_64 \
-enable-kvm \
-m 4G \
-smp 2 \
-hda disk.qcow2 \
-cdrom ubuntu.iso \
-boot d \
-net nic -net user,hostfwd=tcp::2222-:22VirtualBox
VirtualBox es el software de virtualización de código abierto de Oracle con una interfaz gráfica limpia.
Instalar VirtualBox
# Method 1: Install from Ubuntu repository
sudo apt install virtualbox -y
# Method 2: Install from Oracle's official repository (newer version)
wget -qO- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor -o /etc/apt/keyrings/oracle-virtualbox.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/oracle-virtualbox.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
# Install VirtualBox (run apt-cache search virtualbox to confirm the current
# available package name, e.g. virtualbox-7.1 or a newer version)
sudo apt install virtualbox-7.1 -yInstalar paquete de extensión
El paquete de extensión proporciona USB 3.0, escritorio remoto RDP y otras funciones:
# Install the extension pack after downloading the matching version
sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-*.vbox-extpackLínea de comando VBoxManage
# List VMs
VBoxManage list vms
# Start a VM (headless mode)
VBoxManage startvm "vm-name" --type headless
# Shut down a VM
VBoxManage controlvm "vm-name" acpipowerbutton
# Create a snapshot
VBoxManage snapshot "vm-name" take "snapshot-name"LXD / Contenedores del sistema LXC
LXC es una tecnología de contenedor de Linux y LXD es su demonio de administración, que brinda una experiencia similar a la de una máquina virtual pero más liviana.
Instalar LXD
sudo snap install lxdInicializar LXD
lxd init --minimalO utilice la configuración interactiva para obtener más opciones:
lxd initLXD Operaciones básicas
# Launch an Ubuntu container
lxc launch ubuntu:26.04 mycontainer
# Launch a VM (yes, LXD supports VMs too)
lxc launch ubuntu:26.04 myvm --vm
# List instances
lxc list
# Enter a container
lxc exec mycontainer -- bash
# Push and pull files
lxc file push local-file.txt mycontainer/root/
lxc file pull mycontainer/root/file.txt .
# Stop and delete
lxc stop mycontainer
lxc delete mycontainer
# Create snapshots
lxc snapshot mycontainer snap0
lxc restore mycontainer snap0LXD Configuración del perfil
# View default profile
lxc profile show default
# Create a custom profile
lxc profile create dev-profile
lxc profile set dev-profile limits.cpu 4
lxc profile set dev-profile limits.memory 8GB
# Launch a container with a custom profile
lxc launch ubuntu:26.04 devbox --profile dev-profileYunque
Incus es una bifurcación comunitaria de LXD, mantenida por la comunidad de contenedores de Linux. Tiene una funcionalidad similar pero se desarrolla de forma independiente.
Instalar yunque
# Add the Zabbly repository (officially recommended for Incus)
curl -fsSL https://pkgs.zabbly.com/key.asc | sudo gpg --dearmor -o /etc/apt/keyrings/zabbly.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/zabbly.gpg] https://pkgs.zabbly.com/incus/stable $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/zabbly-incus-stable.list
sudo apt update
sudo apt install incus -yInicializar y usar
# Initialize
sudo incus admin init --minimal
# Add user to the incus-admin group
sudo usermod -aG incus-admin $USER
newgrp incus-admin
# Usage is similar to LXD
incus launch images:ubuntu/26.04 mycontainer
incus list
incus exec mycontainer -- bash
incus stop mycontainer
incus delete mycontainerMigrar de LXD a Incus
sudo incus admin migrate-lxdComparación de tecnologías
| Característica | KVM/QEMU | VirtualBox | LXD/Yunque |
|---|---|---|---|
| Tipo de virtualización | Virtualización completa | Virtualización completa | Contenedores del sistema/VM |
| Actuación | Casi nativo | Bien | Casi nativo |
| Aislamiento | Fuerte | Fuerte | Medio (contenedores) / Fuerte (VM) |
| Uso de recursos | Medio | Más alto | Bajo (contenedores) |
| Casos de uso | Servidores, producción. | Desarrollo/pruebas de escritorio | Entornos de desarrollo, aislamiento ligero |
Elija el enfoque de virtualización adecuado según su caso de uso: KVM para servidores de producción, VirtualBox para usuarios de escritorio y LXD o Incus para entornos de aislamiento de desarrollo.