« Lxc » : différence entre les versions

De Wiki doc

Aucun résumé des modifications
Ligne 95 : Ligne 95 :


=Bonus=
=Bonus=
Script de génération d'adresse MAC (en fonction du nom du conteneur)
==Script de génération d'adresse MAC==
 
Voici un script de génération d'adresse MAC en fonction du nom du conteneur :
<source lang="bash">
<source lang="bash">
  if [ -n "$1" ]
  if [ -n "$1" ]
Ligne 108 : Ligne 108 :
  fi
  fi
</source>
</source>
==Activer la couleur dans le shell du conteneur==
Par défaut, le shell Bash des conteneurs n'affichent pas de couleurs. Pour corriger ça il faut définir la variable <source lang="bash" inline>TERM</source> à <source lang="bash" inline>xterm-256color</source>


On peut mettre cette linge dans <source lang="bash" inline>/etc/environment</source>
TERM=xterm-256color
=Informations utiles=
=Informations utiles=
*Les conteneurs sont situés dans <source lang="bash" inline>/var/lib/lxc</source>
*Les conteneurs sont situés dans <source lang="bash" inline>/var/lib/lxc</source>

Version du 13 mars 2017 à 19:01

Installation et utilisation de LXC (au plus simple)

Installation

Installation des paquets

# apt install lxc bridge-utils

Configuration du réseau

Création d'une interface pour le mode bridge (le NAT c'est le mal)

# vim /etc/network/interfaces
 auto br0
 iface br0 inet static
        address 192.168.1.161
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge_ports eth0       
        bridge_stp off
        bridge_maxwait 5
        bridge_fd 0

Création d'un conteneur et configuration

Création d'un conteneur sous Debian 8

# lxc-create -n <NOM_CONTENEUR> -t debian -- -r jessie

Ajout de la configuration réseau. Attention, la directive lxc.network.ipv4 donne une IP au conteneur mais le fichier interfaces du Debian est réglé sur DHCP par défaut. Le conteneur récupère donc 2 IP. Soit on désactive cette directive, soit on vire le DHCP (je pense que mettre une IP fixe au conteneur est plus simple).

# vim /var/lib/lxc/<NOM_CONTENEUR>/config
lxc.network.type = veth
lxc.network.hwaddr = 00:16:3e:62:91:94
lxc.network.name = eth0
#lxc.network.ipv4 = 192.168.1.163
lxc.network.link = br0
lxc.network.flags = up

Commandes de gestion des conteneurs

Démarrage

Démarrage du conteneur en tache de fond

# lxc-start -n <NOM_CONTENEUR> -d

Console

Entrer dans la console du conteur (attach). Pour sortir, tapez ctrl+a q

# lxc-console -n <NOM_CONTENEUR>

Arrêter

Arrêter le conteneur (-k pour forcer)

# lxc-stop -n <NOM_CONTENEUR> [-k]

Supprimer

Supprimer un conteneur (-f pour forcer)

# lxc-destroy -n <NOM_CONTENEUR> [-f]

À noter qu'il est préférable d'utiliser la commande suivante pour supprimer un conteneur (j'ai déjà eu des mauvaises surprises avec l'autre commandes)

# rm -rf /var/lib/lxc/<NOM_CONTENEUR>

Lister

Lister les conteurs démarrés ou arrétés

# lxc-ls [--active | --stopped]

Lister les conteneur dans un tableau

# lxc-ls --fancy

Info

Savoir si un conteneur est allumé ou éteint

# lxc-info -n <NOM_CONTENEUR>

Sauvegarder et restaurer un conteneur

Sauvegarde

Sauvegarde (conserve automatiquement les permissions)

# ls /var/lib/lxc/
# tar czvf Nom_Conteneur_Date.tar.gz Nom_Conteneur

Restauration

Restaurer le conteneur (par défaut, l'option -p est activé et permet de conserver les permissions. Verifiez si c'est le cas le première fois)

# ls /var/lib/lxc/
# tar xzvf[p| --preserve-permissions] Nom_Conteneur_Date.tar.gz

Bonus

Script de génération d'adresse MAC

Voici un script de génération d'adresse MAC en fonction du nom du conteneur :

 if [ -n "$1" ]
     then
         OID="44:8a:5b"
         RAND=$(echo $1 | md5sum | sed 's/\(..\)\(..\)\(..\).*/\1:\2:\3/')
         echo "$OID:$RAND"
     else
         echo "ERREUR: Merci de soumettre un nom pour générer l'adresse MAC :"
         echo "       $FUNCNAME myhost"
 fi

Activer la couleur dans le shell du conteneur

Par défaut, le shell Bash des conteneurs n'affichent pas de couleurs. Pour corriger ça il faut définir la variable TERM à xterm-256color

On peut mettre cette linge dans /etc/environment

TERM=xterm-256color

Informations utiles

  • Les conteneurs sont situés dans /var/lib/lxc
  • Les conteneurs étalons téléchargés sont stockés dans /var/cache/lxc
  • Le paquet contenant l'outil ping est iputils-ping
  • Pour fixer le DNS (qui est automatiquement récupéré par le DHCP) il faut installer le paquet resolconf et mettre une section dns-namerver <IP_DNS> dans le fichier /etc/network/interfaces
  • Détails des arguments lxc.network du fichier de config : https://linuxcontainers.org/fr/lxc/manpages/man5/lxc.container.conf.5.html

Sources