Máquinas Virtuais e Contêineres
Este artigo aborda várias tecnologias de virtualização e contêiner de sistema disponíveis no Ubuntu 26.04.
Verifique o suporte à virtualização de hardware
Antes de começar, confirme se sua CPU suporta virtualização de hardware:
# Check for virtualization support
egrep -c '(vmx|svm)' /proc/cpuinfoUm resultado maior que 0 indica suporte. Você também pode usar cpu-checker:
sudo apt install cpu-checker -y
kvm-okKVM/QEMU
KVM (Máquina Virtual Baseada em Kernel) é uma solução de virtualização integrada ao kernel Linux. Combinado com QEMU, fornece recursos completos de virtualização.
Instale KVM e ferramentas relacionadas
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager -yAdicione o usuário atual aos grupos necessários:
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USERSaia e faça login novamente para que as alterações do grupo tenham efeito.
Verifique a instalação
# Check libvirt service status
sudo systemctl status libvirtd
# Verify connection
virsh list --allUsando o virt-manager (GUI)
virt-managervirt-manager fornece uma interface gráfica intuitiva para criar e gerenciar máquinas virtuais.
Crie uma VM via linha 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.isoExecute osinfo-query os | grep ubuntu para confirmar se seu osinfo-db local inclui ubuntu26.04. Caso contrário, atualize osinfo-db, volte para o ubuntu24.04 mais próximo ou use --osinfo detect=on,require=off para permitir a detecção automática do virt-install.
Comandos virsh comuns
# 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 diretamente
Sem libvirt, usando QEMU diretamente:
# 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-:22Caixa Virtual
VirtualBox é o software de virtualização de código aberto da Oracle com uma interface gráfica limpa.
Instale o 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 pacote de extensão
O pacote de extensão fornece USB 3.0, área de trabalho remota RDP e outros recursos:
# Install the extension pack after downloading the matching version
sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-*.vbox-extpackLinha 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"Contêineres do sistema LXD / LXC
LXC é uma tecnologia de contêiner Linux e LXD é seu daemon de gerenciamento, proporcionando uma experiência semelhante à VM, mas mais leve.
Instale o LXD
sudo snap install lxdInicializar LXD
lxd init --minimalOu use a configuração interativa para mais opções:
lxd initOperações básicas do LXD
# 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 snap0Configuração do perfil LXD
# 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-profileBigorna
Incus é um fork comunitário do LXD, mantido pela comunidade Linux Containers. Possui funcionalidade semelhante, mas é desenvolvido de forma independente.
Instalar Incus
# 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 e 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 para Incus
sudo incus admin migrate-lxdComparação de tecnologia
| Recurso | KVM/QEMU | Caixa Virtual | LXD/Incus |
|---|---|---|---|
| Tipo de virtualização | Virtualização completa | Virtualização completa | Contêineres/VMs do sistema |
| Desempenho | Quase nativo | Bom | Quase nativo |
| Isolamento | Forte | Forte | Médio (contêineres) / Forte (VMs) |
| Uso de recursos | Médio | Mais alto | Baixo (contêineres) |
| Casos de uso | Servidores, produção | Desenvolvimento/teste de desktop | Ambientes de desenvolvimento, isolamento leve |
Escolha a abordagem de virtualização correta com base no seu caso de uso: KVM para servidores de produção, VirtualBox para usuários de desktop e LXD ou Incus para ambientes de isolamento de desenvolvimento.