Outils pour utilisateurs

Outils du site


installation_et_utilisation_de_container_lxc

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
installation_et_utilisation_de_container_lxc [2021/12/02 15:53] – créée Benjamin Labomediainstallation_et_utilisation_de_container_lxc [2022/07/08 22:00] (Version actuelle) – [Snapshot de container] Labomedia
Ligne 1: Ligne 1:
 +====== 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
 +
 +{{ ::linux_containers_logo.png |}}
 +
 ====== Installation de containers LXC sous Debian 11 ====== ====== Installation de containers LXC sous Debian 11 ======
-  apt install lxc+  apt install lxc apparmor
      
 ===== Réseau : configuration mode Independent bridge setup ===== ===== Réseau : configuration mode Independent bridge setup =====
Ligne 33: Ligne 41:
  
   * Référence : https://wiki.debian.org/LXC#Installation   * Référence : https://wiki.debian.org/LXC#Installation
 +
 +====== Création de container LXC ======
 +  lxc-create -n musique -t download
 +Demande quelle distribution installer pour quelle architecture
 +  lxc-create -n musique -t download  -- -d ubuntu -r bionic -a amd64
 +  DOWNLOAD_KEYSERVER="keyserver.ubuntu.com" lxc-create -n atelier -t download  -- -d debian -r bullseye -a amd64
 +
  
 ==== Configuration type d'un container ==== ==== Configuration type d'un container ====
Ligne 57: Ligne 72:
 lxc.start.auto = 1 lxc.start.auto = 1
 </code> </code>
 +
 +Voir pour cinfig ip fixe (mais dns ?)
 +<code>
 +lxc.net.0.hwaddr = mac adresse
 +lxc.net.0.ipv4.address = 100.0.0.2
 +lxc.net.0.ipv4.gateway = 100.0.0.1
 +</code>
 +
 +====== 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
 +  
 +Si 
 +  Setting up the GPG keyring
 +  ERROR: Unable to fetch GPG key from keyserver
 +  lxc-create: dokos: lxccontainer.c: create_run_template: 1616 Failed to create container from template
 +
 +alors https://serverok.in/lxc-error-unable-to-fetch-gpg-key-from-keyserver
 +  DOWNLOAD_KEYSERVER="keyserver.ubuntu.com" 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 ynh
 +
 +Debug du démarrage d'un container
 +  lxc-start ynh --logfile ~/loguplxccontainer.txt --logpriority DEBUG
 +
 +
 +  
 +===== Snapshot de container =====
 +
 +Il faut d'abord stopper le container avant de faire un snapshot :
 +  lxc-stop nomducontainer
 +Pour réaliser un snapshot :
 +  lxc-snapshot -n nomducontainer
 +Lister les snapshots :
 +  lxc-snapshot -n nomducontainer -L
 +Restaurer un snapshot :
 +  lxc-snapshot -n nomducontainer -r nomdusnapshotàrestaurer
 +Détruire un snapshot :
 +  lxc-snapshot -n nomducontainer -d nomdusnapshot
 +Pour plus d'options :
 +  * [[https://linuxcontainers.org/lxc/manpages/man1/lxc-snapshot.1.html|la doc de lxc-snapshot]]
 +
 +===== Envoyer une commande au container LXC depuis l'extérieur =====
 +Par exemple pour faire un dump de la base de données (à adapter en fonction de la bdd)
 +  lxc-attach -n nomducontainer -- /bin/bash -c "sudo -u postgres pg_dumpall | gzip -c > /home/ubuntu/bddbackup.gz"
 +Exemple de script pour sauvegarder toutes les bdd de containers utilisant la même configuration
 +<file bash lxc_all-backupdb.sh>*
 +#!/bin/bash
 +# Get the vm list
 +vms="$(lxc-ls --active)"
 + 
 +# Update each vm
 +update_vm(){
 +        local vm="$1"
 +        echo "*** [VM: $vm [$(hostname) @ $(date)] ] ***"
 +        /usr/bin/lxc-attach -n "$vm" -- /bin/bash -c "sudo -u postgres pg_dumpall | gzip -c > /home/ubuntu/bddbackup.gz"
 +        echo "- backup db done ----------------------------------------------------------------"
 +}
 + 
 +# Do it
 +for v in $vms
 +do
 +   update_vm "$v"
 +done
 +</file>
 +====== 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 [[https://linuxiac.com/reverse-proxy-with-nginx/|tuto pour la mise en place basique en http]]
 +  * Un tuto pour [[https://seanthegeek.net/1035/how-to-configure-a-nginx-reverse-proxy-with-lets-encrypt-certificates/|l'utilisation de certbot avec Nginx]]
 +  * A voir pour conf https://blog.budhajeewa.com/assigning-ssl-using-lets-encrypt-to-websites-running-in-lxcs/
 +
 +
 +{{tag>bj serveur lxc container linux virtualisation futuretic}}
installation_et_utilisation_de_container_lxc.1638460427.txt.gz · Dernière modification : 2021/12/02 15:53 de Benjamin Labomedia