Progra - Des container facilement avec LXC - enfin plutôt un linux-sandbox dans votre Linux

LXC ? Docker l'utilise et c'est, je cite Wikipedia,

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.

Docker utilise LXC mais ne permets que d'empaqueter qu'un seul logiciel et de le faire tourner où on veut (peut).

En gros ça utilise des méthodes d'isolation de process/mémoire etc dans un Linux (depuis les versions 2.6.24)

Des machines virtuelles facilement avec LXC

miximum.fr des-machines-virtuelles-facilement-avec-lxc.jpg
miximum.fr

A quoi ça sert ? 

  • Développer/tester dans un environnement cloisonné qui ne va pas casser votre système, le vrais.
  • Faire tourner (simuler) plusieurs Linux sous votre Linux
  • Genre avoir sur la même machine son serveur http, son backup pour faire les migrations, idem pour la BDD, itou pour ... etc

La papage web: linuxcontainers.org/

Je cite Thibault Jouannic / repose les commandes là: pour copie/mémoire

Installer LXC

LXC se trouve dans les dépôts de toute distribution linux qui se respecte. Pour installer, rien de plus facile.

sudo apt install lxc

Créer une machine debian

La commande suivante permet de créer une machine Debian Jessie.

sudo lxc-create -n ma_machine -t download -- -d debian -r jessie -a amd64

Lister les machines existantes

sudo lxc-ls -f

NAME        STATE   AUTOSTART GROUPS IPV4      IPV6
machine1    RUNNING 0         -      10.0.3.36 -
machine2    STOPPED 1         -      -         -

Démarrer une machine

sudo lxc-start -n machine1

Obtenir un shell sur une machine

sudo lxc-attach -n machine1

Configuration de la machine

Par défaut, le fichier de configuration d'une machine lxc se trouve dans/var/lib/lxc/nom_de_la_machine/config.

Créer un répertoire partagé entre la machine physique et une machine LXC

Dans le fichier susmentionné, ajouter une ligne qui ressemble à ça :

lxc.mount.entry = /chemin/sur/la/machine/physique chemin/sur/la/machine/lxc none rw,bind 0.0

Notez que le deuxième chemin doit être un chemin relatif (sans « / » au début).

Configuration du réseau

Il existe plusieurs façons de connecter la machine au réseau. En lui donnant une ip spécifique et un accès direct au réseau, via du nat, etc.

Ici, il y aura probablement quelques spécificités en fonction de votre OS de base. Le mieux est de vous référer à la doc.

Supprimer une machine existante

sudo lxc-destroy -n machine

C'est tout

LXC permet de faire bien plus, mais pour mes besoins très simples, ce sont à peu près les seules commandes que j'utilise.

Je n'avais pas envie de trop me fouler, mais LXC gagnerait à être mieux connu. Pensez y la prochaine fois que vous voulez utiliser Docker alors qu'une simple et bête machine virtuelle vous suffirait.

Haut de page