debian_buster_lxc

naos 2019/11/22 22:19

LXC

testé sur Debian Buster 10.2

Présentation: (source: Wikipédia) LXC, contraction de l’anglais Linux Containers 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 ». LXC est le système de conteneurisation, sur lequel s'appuie le logiciel Docker.

Objectif de cette documentation: Installer, configurer avec le réseau libvirt ou bridge et utiliser LXC.

(pour obtenir une adresse en 192.168.X.X)

Installez les paquets requis

# apt-get install lxc libvirt-daemon-system

Editez le fichier /etc/lxc/default.conf

# vim /etc/lxc/default.conf

Assurez-vous d'avoir ces lignes:

lxc.net.0.type = empty
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.net.0.type = veth
lxc.net.0.link = virbr0
lxc.net.0.flags = up
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1

Vérifiez la configuration

# lxc-checkconfig

Démarrez le réseau

# virsh net-start default

Configurez le démarrage automatique du réseau

# virsh net-autostart default

Redémarrez le service LXC

# systemctl restart lxc-net
# systemctl status lxc-net

Affichez les interfaces réseaux virtuelles

# brctl show

(pour obtenir une adresse en 10.0.3.X)

Installez les paquets requis

# apt-get install lxc

Editez le fichier /etc/default/lxc-net

# vim /etc/default/lxc-net

Ajoutez cette ligne:

USE_LXC_BRIDGE="true"

Editez le fichier /etc/lxc/default.conf

# vim /etc/lxc/default.conf

Ajoutez ces lignes:

lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up

Vérifiez la configuration

# lxc-checkconfig

Redémarrez le service LXC

# systemctl restart lxc-net
# systemctl status lxc-net

Router un port dans un conteneur

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.3.11:8080

ou Editez le fichier /etc/network/interfaces

up iptables -t nat -A PREROUTING -i <host-iface> -p tcp --dport <source-port> -j DNAT --to <container-ip>:<container-port>

Créer un conteneur nommé “c1” avec la distribution Debian

# lxc-create -t debian -n c1

ou si vous avez une erreur réseau:

# lxc-create -t download -n debian -- --keyserver hkp://keyserver.ubuntu.com:80

Affichez la liste des conteneurs

# lxc-ls -f

Démarrez le conteneur nommé “debian”

# lxc-start -n debian

Se connecter au conteneur nommé “c1”

# lxc-console -t 0 -n c1

ou

# lxc-attach -n debian --clear-env

Démarrer automatiquement un contenur

# lxc config set debian boot.autostart true

ou Editez le fichier /var/lib/lxc/$containername/config pour avoir cette ligne:

lxc.start.auto = 1

Arrêter brutalement un conteneur

# lxc-stop -n NOMDUCONTENEUR

Arrêter proprement un conteneur

# lxc-halt -n NOMDUCONTENEUR

Détruire un conteneur

# lxc-destroy NOMDUCONTENEUR

Affichez les informations d'un conteneur

# lxc-info NOMDUCONTENEUR

Copier un conteneur

# lxc-copy -n debian1 -N debian2

Relier un point de montage à l'intérieur du conteneur

lxc.mount.entry=/CHEMIN /var/lib/lxc/NOMDUCONTENEUR/rootfs/mount_point none bind 0 0

Changer la configuration d'un conteneur

# vim /var/lib/lxc/debian/config
  • debian_buster_lxc.txt
  • Dernière modification: 2019/11/23 00:01
  • par naos