Ceci est une ancienne révision du document !
Table des matières
LXC container ?
LXC, contraction de l’anglais Linux Containers3 est un système de virtualisation, utilisant l'isolation comme méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs, partageant le même noyau et une plus ou moins grande partie du système hôte. Le conteneur apporte une virtualisation de l'environnement d'exécution (processeur, mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ».
- Référence : https://fr.wikipedia.org/wiki/LXC
Installation de containers LXC sous Debian 11
apt install lxc
Réseau : configuration mode Independent bridge setup
Installation et configuration du réseau : édition du fichier /etc/default/lxc-net
nano /etc/default/lxc-net
USE_LXC_BRIDGE="true" LXC_BRIDGE="lxcbr0" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.0.3.0/24" LXC_DHCP_RANGE="10.0.3.200,10.0.3.254" LXC_DHCP_MAX="253" LXC_DHCP_CONFILE="" LXC_DOMAIN=""
Pour créer un template pour la configuration de nouveau containers :
nano /etc/lxc/default.conf
lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1
Redémarrer la couche réseau
sudo service lxc-net restart
- Référence : https://wiki.debian.org/LXC#Installation
Configuration type d'un container
Exemple pour un container nommé “ynh”
nano /var/lib/lxc/ynh/config
# Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64 # Container specific configuration lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1 lxc.rootfs.path = dir:/var/lib/lxc/ynh/rootfs lxc.uts.name = ynh # Network configuration lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3e:dd:91:8b # Autostart lxc.start.auto = 1
Commandes de base pour manipuler des containers
Créer un nouveau container sous debian
lxc-create -n ynh -t download -- -d debian -r bullseye -a amd64
Lister les containers présents sur le serveur et leurs IP si démarrés
lxc-ls -f
Démarrer un container nommé ynh
lxc-start ynh
Se loguer dans le container en tant que root
lxc-attach ynh
Arrêter un container
lxc-stop -n transitional
Reverse proxy NGINX vers un container LXC
On installe un serveur web nginx qui va renvoyer le traffic web vers le container LXC précédemment installé
- Un tuto pour l'utilisation de certbot avec Nginx