Machines virtuelles et conteneurs
Cet article couvre diverses technologies de virtualisation et de conteneur système disponibles sur Ubuntu 26.04.
Vérifier la prise en charge de la virtualisation matérielle
Avant de commencer, vérifiez que votre processeur prend en charge la virtualisation matérielle :
# Check for virtualization support
egrep -c '(vmx|svm)' /proc/cpuinfoUn résultat supérieur à 0 indique un support. Vous pouvez également utiliser cpu-checker :
sudo apt install cpu-checker -y
kvm-okKVM/QEMU
KVM (Kernel-based Virtual Machine) est une solution de virtualisation intégrée au noyau Linux. Combiné avec QEMU, il offre des capacités de virtualisation complètes.
Installer KVM et les outils associés
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager -yAjoutez l’utilisateur actuel aux groupes requis :
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USERDéconnectez-vous et reconnectez-vous pour que les modifications du groupe prennent effet.
Vérifier l’installation
# Check libvirt service status
sudo systemctl status libvirtd
# Verify connection
virsh list --allUtilisation de virt-manager (GUI)
virt-managervirt-manager fournit une interface graphique intuitive pour créer et gérer des machines virtuelles.
Créer une VM via la ligne de commande
# 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.isoExécutez osinfo-query os | grep ubuntu pour confirmer si votre base de données osinfo locale inclut ubuntu26.04. Sinon, mettez à niveau osinfo-db, revenez au ubuntu24.04 le plus proche ou utilisez --osinfo detect=on,require=off pour laisser virt-install se détecter automatiquement.
Commandes virsh courantes
# 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-storageUtiliser QEMU directement
Sans libvirt, en utilisant directement QEMU :
# 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-:22Boîte Virtuelle
VirtualBox est le logiciel de virtualisation open source d’Oracle avec une interface graphique épurée.
Installer 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 -yInstaller le pack d’extensions
Le pack d’extension fournit USB 3.0, un bureau à distance RDP et d’autres fonctionnalités :
# Install the extension pack after downloading the matching version
sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-*.vbox-extpackLigne de commande 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"Conteneurs système LXD / LXC
LXC est une technologie de conteneur Linux et LXD est son démon de gestion, offrant une expérience similaire à celle d’une VM mais plus légère.
Installer LXD
sudo snap install lxdInitialiser LXD
lxd init --minimalOu utilisez la configuration interactive pour plus d’options :
lxd initLXD Opérations de base
# 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 snap0Configuration du profil 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-profileEnclume
Incus est un fork communautaire de LXD, maintenu par la communauté Linux Containers. Il a des fonctionnalités similaires mais est développé indépendamment.
Installer 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 -yInitialiser et utiliser
# 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 mycontainerMigrer de LXD vers Incus
sudo incus admin migrate-lxdComparaison technologique
| Fonctionnalité | KVM/QEMU | Boîte Virtuelle | LXD/Incus |
|---|---|---|---|
| Type de virtualisation | Virtualisation complète | Virtualisation complète | Conteneurs système/VM |
| Performance | Quasi-natif | Bien | Quasi-natif |
| Isolement | Fort | Fort | Moyen (conteneurs) / Fort (VM) |
| Utilisation des ressources | Moyen | Plus haut | Faible (conteneurs) |
| Cas d’utilisation | Serveurs, production | Développement/test de bureau | Environnements de développement, isolation légère |
Choisissez la bonne approche de virtualisation en fonction de votre cas d’utilisation : KVM pour les serveurs de production, VirtualBox pour les utilisateurs de bureau et LXD ou Incus pour les environnements d’isolation de développement.