Commande Linux lxc
LXC (Linux Containers) est une technologie de virtualisation au niveau du système d'exploitation qui permet d'exécuter plusieurs environnements Linux isolés (conteneurs) sur un seul système Linux. Contrairement aux machines virtuelles traditionnelles, les conteneurs LXC partagent le noyau du système hôte, ce qui les rend plus légers et plus efficaces.
LXC offre une isolation proche de celle des machines virtuelles tout en maintenant une efficacité d'exécution proche des performances natives. C'est la base de technologies de conteneurs telles que Docker.
Concepts de base de LXC
Conteneur
Un conteneur est un espace de processus isolé et léger, avec son propre système de fichiers, sa configuration réseau et son arborescence de processus.
Modèle
Un modèle est une configuration prédéfinie et une disposition de système de fichiers utilisées pour créer des conteneurs. LXC fournit une variété de modèles, tels qu'ubuntu, debian, centos, etc.
Groupes de contrôle (cgroups)
Une fonctionnalité du noyau Linux utilisée pour limiter, enregistrer et isoler l'utilisation des ressources (CPU, mémoire, E/S disque, etc.) des groupes de processus.
Espaces de noms
Une fonctionnalité du noyau Linux qui assure l'isolation des processus, y compris les espaces de noms PID, réseau, point de montage, UTS et autres.
Syntaxe des commandes LXC
Format de base des commandes :
lxc [选项] [参数]
Options globales courantes :
--debug: Activer la sortie de débogage--logfile=<文件>: Spécifier le fichier journal--version: Afficher les informations de version--help: Afficher les informations d'aide
Commandes courantes LXC
Gestion des conteneurs
Créer un conteneur
lxc-create -n -t [-- ]
Exemple :
lxc-create -n mycontainer -t ubuntu -- -r jammy
Démarrer le conteneur
lxc-start -n [-d] # -d 表示在后台运行
Arrêter le conteneur
lxc-stop -n
Supprimer le conteneur
lxc-destroy -n
Informations sur le conteneur
Lister les conteneurs
lxc-ls [--active] # --active 只显示运行中的容器
Afficher l'état du conteneur
lxc-info -n
Afficher la console du conteneur
lxc-console -n
Configuration du conteneur
Copier un conteneur
lxc-copy -n -N
Geler/Dégeler un conteneur
Exemple
lxc-unfreeze -n # Dégeler
Modifier la configuration du conteneur
lxc-config -n -s =
Fichier de configuration LXC
Le fichier de configuration de chaque conteneur se trouve à :
/var/lib/lxc//config
Éléments de configuration courants :
Exemple
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
# Limites de ressources
lxc.cgroup.cpu.shares = 512
lxc.cgroup.memory.limit_in_bytes = 512M
Exemples pratiques
Exemple 1 : Créer et exécuter un conteneur Ubuntu
Exemple
lxc-create -n myubuntu -t ubuntu -- -r jammy
# Démarrer le conteneur
lxc-start -n myubuntu -d
# Entrer dans la console du conteneur
lxc-console -n myubuntu
# Exécuter des commandes dans le conteneur
lxc-attach -n myubuntu -- apt update
Exemple 2 : Limiter les ressources du conteneur
Modifier le fichier de configuration du conteneur/var/lib/lxc/myubuntu/config, ajoutez :
Exemple
lxc.cgroup.memory.limit_in_bytes = 256M
Redémarrez ensuite le conteneur pour appliquer la configuration :
Exemple
lxc-start -n myubuntu -d
Dépannage des problèmes courants
Problème 1 : Le conteneur ne peut pas démarrer
- Vérifiez les journaux :
cat /var/log/lxc/<容器名>.log - Assurez-vous que le noyau prend en charge LXC :
grep CONFIG_CGROUP /boot/config-$(uname -r)
Problème 2 : Problèmes de connexion réseau
- Vérifiez le réseau ponté :
brctl show - Assurez-vous que lxc-net est installé :
apt install lxc-net
Problème 3 : Problèmes de permissions
- Exécutez les commandes en tant qu'utilisateur root
- Ou ajoutez l'utilisateur au groupe lxc :
usermod -aG lxc <用户名>
Utilisation avancée
Utilisation de l'API LXC
LXC fournit des liaisons Python, permettant de gérer les conteneurs par programmation :
Exemple
container = lxc.Container("mycontainer")
if not container.defined:
container.create("ubuntu", {"release": "jammy"})
container.start()
Instantanés de conteneurs
Exemple
lxc-snapshot -n -r snap0 # Restaurer un instantané
Migration de conteneurs
Exemple
lxc-checkpoint -n -D /path/to/dump
# Sur l'hôte cible
lxc-restore -n -D /chemin/vers/dump
Résumé
LXC fournit une solution de virtualisation légère qui convient bien aux scénarios nécessitant une isolation mais pas des machines virtuelles complètes. En maîtrisant les commandes lxc, vous pouvez créer, gérer et maintenir efficacement des conteneurs Linux. Avec une compréhension plus approfondie de LXC, vous pouvez explorer davantage ses fonctionnalités avancées, telles que la configuration personnalisée, les limites de ressources et l'orchestration de conteneurs.
Autres extensions
Référence des commandes Linux