Skip to Content
DocumentaçãoDesenvolvimentoMáquinas Virtuais e Contêineres

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/cpuinfo

Um resultado maior que 0 indica suporte. Você também pode usar cpu-checker:

sudo apt install cpu-checker -y kvm-ok

KVM/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 -y

Adicione o usuário atual aos grupos necessários:

sudo usermod -aG libvirt $USER sudo usermod -aG kvm $USER

Saia 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 --all

Usando o virt-manager (GUI)

virt-manager

virt-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.iso
Note

Execute 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-storage

Usando 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-:22

Caixa 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 -y

Instalar 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-extpack

Linha 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 lxd

Inicializar LXD

lxd init --minimal

Ou use a configuração interativa para mais opções:

lxd init

Operaçõ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 snap0

Configuraçã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-profile

Bigorna

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 -y

Inicializar 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 mycontainer

Migrar de LXD para Incus

sudo incus admin migrate-lxd

Comparação de tecnologia

RecursoKVM/QEMUCaixa VirtualLXD/Incus
Tipo de virtualizaçãoVirtualização completaVirtualização completaContêineres/VMs do sistema
DesempenhoQuase nativoBomQuase nativo
IsolamentoForteForteMédio (contêineres) / Forte (VMs)
Uso de recursosMédioMais altoBaixo (contêineres)
Casos de usoServidores, produçãoDesenvolvimento/teste de desktopAmbientes 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.