Commande Linux lxc

Linux 命令大全Référence des commandes Linux


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-freeze -n   # Geler
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

# Configuration réseau
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

# Créer le conteneur
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.cpu.shares = 256
lxc.cgroup.memory.limit_in_bytes = 256M

Redémarrez ensuite le conteneur pour appliquer la configuration :

Exemple

lxc-stop -n myubuntu
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

import lxc

container = lxc.Container("mycontainer")
if not container.defined:
    container.create("ubuntu", {"release": "jammy"})
container.start()

Instantanés de conteneurs

Exemple

lxc-snapshot -n   # Créer un instantané
lxc-snapshot -n  -r snap0  # Restaurer un instantané

Migration de conteneurs

Exemple

# Sur l'hôte source
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.


Linux 命令大全Référence des commandes Linux

Autres extensions