Outils pour utilisateurs

Outils du site


documentation:technique:lxc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
doc:technique:lxc [2016/11/27 21:48] – Intégration de la doc sur lxc-net avec le reste jeromedocumentation:technique:lxc [2017/04/16 20:20] – [Configuration réseau] tyrben
Ligne 1: Ligne 1:
-====== Introduction ======+====== LXC ====== 
 + 
 +===== Introduction =====
  
 LXC est utilisé sur notre serveur dans le but de séparer les différents services que nous allons proposer. Cette documentation fait suite aux différents ateliers réalisés pour découvrir et se former sur LXC. LXC est utilisé sur notre serveur dans le but de séparer les différents services que nous allons proposer. Cette documentation fait suite aux différents ateliers réalisés pour découvrir et se former sur LXC.
Ligne 9: Ligne 11:
   * **cgroups(7)**   * **cgroups(7)**
  
-====== Installation ======+===== Installation =====
  
-Sous Debian, il suffit d'installer le paquet ''lxc''.+Sous Debian, il suffit d'installer le paquet ''lxc'' 
 + 
 +FIXME Il y a une version en particulier à installer ? Il me semble qu'on est allé la chercher dans des backports. 
 + 
 +''apt-get -t jessie-backports install lxc''
  
 D'autres paquets peuvent être nécessaire en fonction du //backend// choisi, ce qui correspond en gros au système de fichier qui contiendra les conteneurs, ou à la configuration réseau. D'autres paquets peuvent être nécessaire en fonction du //backend// choisi, ce qui correspond en gros au système de fichier qui contiendra les conteneurs, ou à la configuration réseau.
  
-===== Configuration par défaut =====+==== Configuration par défaut ====
  
 Il est possible de définir une configuration par défaut qui sera incluse dans chaque nouveau conteneur. Cela est particulièrement pratique pour la configuration réseau, souvent la même pour tous. Ce fichier en question est ''/etc/lxc/default.conf''. Il est possible de définir une configuration par défaut qui sera incluse dans chaque nouveau conteneur. Cela est particulièrement pratique pour la configuration réseau, souvent la même pour tous. Ce fichier en question est ''/etc/lxc/default.conf''.
 +
 ===== Configuration réseau ===== ===== Configuration réseau =====
  
 Il y a plusieurs façon de configurer le réseau au sein des conteneurs. Il y a plusieurs façon de configurer le réseau au sein des conteneurs.
  
-La plus classique étant de passer par un //bridge// (ou pont en français) créé sur l'hôte spécifiquement pour les conteneurs. Par cette méthode, on peut également différencier 2 façons de faire :+La plus classique étant de passer par un //[[https://wiki.debian.org/fr/BridgeNetworkConnections|bridge]]// (ou pont en français) créé sur l'hôte spécifiquement pour les conteneurs. Par cette méthode, on peut également différencier 2 façons de faire :
  
   * faire de la redirection de ports depuis l'hôte vers les conteneurs (plus communément appelé NAT),   * faire de la redirection de ports depuis l'hôte vers les conteneurs (plus communément appelé NAT),
 +FIXME On n'a pas fait ça. Ça serait bien de regrouper uniquement les procédures réalisées, et de séparer les idées non réalisées.
   * coupler le //bridge// avec une interface réseau existante.   * coupler le //bridge// avec une interface réseau existante.
  
Ligne 43: Ligne 51:
 Il faut tout d'abord activer l'//IP forward// sur l'hôte. Ceci permet d'activer la redirection d'une connexion, nécessaire pour la suite. Pour le faire de manière permanente (à noter que ce sera effectif qu'au rechargement de sysctl), on peut le faire avec la commande : Il faut tout d'abord activer l'//IP forward// sur l'hôte. Ceci permet d'activer la redirection d'une connexion, nécessaire pour la suite. Pour le faire de manière permanente (à noter que ce sera effectif qu'au rechargement de sysctl), on peut le faire avec la commande :
  
-  echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-local-ip-forward+  echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-local-ip-forward.conf
  
 Celle-ci va créer le fichier ''99-local-ip-forward'' dans le dossier ''/etc/sysctl.d'', une bonne pratique pour étendre les différentes configurations. On peut également l'activer immédiatement (à noter qu'au prochain redémarrage, la valeur par défaut sera réutilisé), avec la commande : Celle-ci va créer le fichier ''99-local-ip-forward'' dans le dossier ''/etc/sysctl.d'', une bonne pratique pour étendre les différentes configurations. On peut également l'activer immédiatement (à noter qu'au prochain redémarrage, la valeur par défaut sera réutilisé), avec la commande :
Ligne 141: Ligne 149:
     lxc.network.flags = up     lxc.network.flags = up
  
-====== Utilisation ======+===== Utilisation =====
  
-===== Création d'un conteneur =====+==== Création d'un conteneur ====
  
 Pour créer un conteneur, cela se fait avec la commande ''lxc-create''. Un ''man lxc-create'' vous apportera toutes les informations nécessaires sur l'utilisation des différents paramètres et options. Pour créer un conteneur, cela se fait avec la commande ''lxc-create''. Un ''man lxc-create'' vous apportera toutes les informations nécessaires sur l'utilisation des différents paramètres et options.
Ligne 153: Ligne 161:
 Le conteneur est désormais créé, il est stocké par défaut dans le dossier ''/var/lib/lxc/pouet''. On y trouve principalement un dossier ''rootfs'', contenant le système de fichier du conteneur (c'est à ça qu'on se rapproche du chroot), et un fichier ''config''. C'est ce dernier qu'il va faudra modifier pour adapter sa configuration, comme lui définir une adresse IP par exemple. Pour connaître l'ensemble des valeurs possibles, un ''man lxc.container.conf'' apportera encore beaucoup d'informations. Le conteneur est désormais créé, il est stocké par défaut dans le dossier ''/var/lib/lxc/pouet''. On y trouve principalement un dossier ''rootfs'', contenant le système de fichier du conteneur (c'est à ça qu'on se rapproche du chroot), et un fichier ''config''. C'est ce dernier qu'il va faudra modifier pour adapter sa configuration, comme lui définir une adresse IP par exemple. Pour connaître l'ensemble des valeurs possibles, un ''man lxc.container.conf'' apportera encore beaucoup d'informations.
  
-==== Optimisations ====+=== Optimisations ===
  
 Par défaut, le conteneur sera crée avec une interface réseau ''eth0'', configurée en DHCP. Si la configuration réseau est définie de manière statique (dans le fichier de configuration du conteneur par exemple), il est bon de modifier la configuration de ''eth0'' pour éviter qu'il cherche inutilement du DHCP. Pour ce faire, avant de démarrer le conteneur, il faudra modifier le fichier ''/var/lib/lxc/pouet/rootfs/etc/network/interfaces'' et remplacer ''dhcp'' par ''manual'' dans la ligne définissant ''eth0''. On devrait donc avoir au final : Par défaut, le conteneur sera crée avec une interface réseau ''eth0'', configurée en DHCP. Si la configuration réseau est définie de manière statique (dans le fichier de configuration du conteneur par exemple), il est bon de modifier la configuration de ''eth0'' pour éviter qu'il cherche inutilement du DHCP. Pour ce faire, avant de démarrer le conteneur, il faudra modifier le fichier ''/var/lib/lxc/pouet/rootfs/etc/network/interfaces'' et remplacer ''dhcp'' par ''manual'' dans la ligne définissant ''eth0''. On devrait donc avoir au final :
Ligne 159: Ligne 167:
   iface eth0 inet manual   iface eth0 inet manual
  
-===== Accès à un conteneur =====+==== Accès à un conteneur ====
  
 Une fois le conteneur créé, il va falloir le démarrer avec la commande ''lxc-start''. Dans l'exmple du conteneur //toto// : Une fois le conteneur créé, il va falloir le démarrer avec la commande ''lxc-start''. Dans l'exmple du conteneur //toto// :
documentation/technique/lxc.txt · Dernière modification : 2018/09/09 21:26 de cacatoes

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki