Outils pour utilisateurs

Outils du site


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
Dernière révisionLes deux révisions suivantes
lxc [2019/10/07 12:21] – [Locale] simonlxc [2020/08/09 15:20] – [Cas pratiques] simon
Ligne 96: Ligne 96:
 </code> </code>
  
 +===== Configurer un conteneur en "autostart" =====
 +Il faut rajouter une ligne dans sa configuration : 
 +<code bash>
 +$ sudo vim /var/lib/lxc/stretch-base/config
 +(...)
 +lxc.start.auto = 1
 +(...)
 +</code>
 +
 +Et redémarrer le conteneur.
 ===== Du réseau dans le conteneur ===== ===== Du réseau dans le conteneur =====
 Sources :  Sources : 
   * [[https://wiki.debian.org/LXC/SimpleBridge|SimpleBridge (wiki.debian.org)]]   * [[https://wiki.debian.org/LXC/SimpleBridge|SimpleBridge (wiki.debian.org)]]
   * [[https://angristan.xyz/setup-network-bridge-lxc-net/|Setup network bridge lxc-net (angristan.xyz)]]   * [[https://angristan.xyz/setup-network-bridge-lxc-net/|Setup network bridge lxc-net (angristan.xyz)]]
 +
 +==== Configuration de base (dhcp) ====
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Ligne 185: Ligne 197:
 </code> </code>
  
 +==== IP statique (dhcp) ====
 +__Source :__ [[https://serverfault.com/questions/697143/how-to-set-dhcp-ips-of-standard-lxc-containers|serverfault.com]]
 +
 +On ajoute une ligne dans ''/etc/lxc/lxc-net'' pour utiliser la configuration dnsmasq du fichier ''/etc/lxc/dnsmasq.conf'' :
 +<code bash>
 +$ sudo cat /etc/lxc/lxc-net 
 +USE_LXC_BRIDGE="true"
 +LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf
 +
 +$ sudo cat /etc/lxc/dnsmasq.conf 
 +dhcp-host=caliban,10.0.3.2
 +</code>
 +
 +On commente la ligne concernant l'ip fixe dans la configuration du conteneur :
 +<code bash>
 +# cat /var/lib/lxc/buster-base/config 
 +(...)
 +# Network configuration
 +lxc.net.0.type = veth
 +lxc.net.0.link = lxcbr0
 +lxc.net.0.flags = up
 +lxc.net.0.hwaddr = 00:16:3e:22:1a:9e
 +#lxc.net.0.ipv4.address = 10.0.3.2/24
 +</code>
 +
 +On éteint le conteneur et on redémarre le service lxc-net :
 +<code bash>
 +$ sudo lxc-stop buster-base
 +
 +$ sudo systemctl restart lxc-net
 +
 +$ sudo systemctl status lxc-net
 +● lxc-net.service - LXC network bridge setup
 +(...)
 +   CGroup: /system.slice/lxc-net.service
 +           └─15671 dnsmasq --conf-file=/etc/lxc/dnsmasq.conf -u dnsmasq --strict-order --bind-interfaces --pid-file=/run/lxc/dnsmasq.pid --listen-address 10.0.3(...)
 +(...)
 +
 +$ sudo lxc-start buster-base
 +    
 +$ sudo lxc-ls -f
 +NAME    STATE   AUTOSTART GROUPS IPV4     IPV6 UNPRIVILEGED 
 +buster-base RUNNING 0              10.0.3.2 -    false
 +</code>
 +
 +Et voilà, notre conteneur "buster-base" aura toujours l'adresse IP 10.0.3.2 !
 ===== La configuration de chaque conteneur ===== ===== La configuration de chaque conteneur =====
 Chaque conteneur a sa configuration dans ce dossier : Chaque conteneur a sa configuration dans ce dossier :
Ligne 252: Ligne 310:
  
 Bon à savoir pour les sauvegardes ! Bon à savoir pour les sauvegardes !
 +
 +===== Sauvegarder un container =====
 +<code bash>
 +# lxc-stop monContainer
 +
 +# cd /var/lib/lxc/monContainer/
 +
 +root@ns334000:/var/lib/lxc/monContainer# tar --numeric-owner -czvf monContainer_fs_`date "+%Y-%m-%d"`.tar.gz ./*
 +
 +root@ns334000:/var/lib/lxc/monContainer# ls
 +monContainer_fs_2019-10-19.tar.gz  config  rootfs  snaps
 +</code>
 +===== Déplacer un conteneur =====
 +<code bash>
 +$ sudo lxc-stop -n monconteneur
 +
 +$ su
 +
 +$ cd /var/lib/lxc/monconteneur/
 +
 +# tar --numeric-owner -czvf monconteneur_fs.tar.gz ./*
 +
 +# ll
 +total 208692
 +-rw-r-----  1 root root       795 oct 10 11:43 config
 +-rw-r--r--  1 root root 213684873 oct 10 17:03 monconteneur_fs.tar.gz
 +drwxr-xr-x 21 root root      4096 oct 10 11:43 rootfs
 +</code>
 +
 +On copie dans le dossier de l'utilisateur (root n'ayant pas les accès ssh de mon utilisateur) :
 +<code bash>
 +# mv monconteneur_fs.tar.gz /home/simon/tmp/
 +
 +# chown simon:simon /home/simon/tmp/monconteneur_fs.tar.gz
 +</code>
 +
 +On repasse en utilisateur "normal" et on envoie sur un autre serveur
 +<code bash>
 +$ scp /home/simon/tmp/monconteneur_fs.tar.gz simon@192.168.14.12:~/
 +</code>
 +
 +Sur le serveur : 
 +<code bash>
 +$ simon@192.168.14.12
 +
 +simon@server:~$ sudo -s
 +
 +root@server:/home/simon# mkdir /var/lib/lxc/monconteneur
 +
 +root@server:/home/simon# cd /var/lib/lxc/monconteneur/
 +
 +root@server:/var/lib/lxc/monconteneur# cp /home/simon/monconteneur_fs.tar.gz /var/lib/lxc/monconteneur/
 +
 +root@server:/var/lib/lxc/monconteneur# ls
 +monconteneur_fs.tar.gz
 +
 +root@server:/var/lib/lxc/monconteneur# tar --numeric-owner -xzvf monconteneur_fs.tar.gz
 +
 +root@server:/var/lib/lxc/monconteneur# ls
 +config monconteneur_fs.tar.gz rootfs
 +
 +root@ns334000:/var/lib/lxc/monconteneur# lxc-ls -f
 +NAME    STATE   AUTOSTART GROUPS IPV4     IPV6 UNPRIVILEGED 
 +(...)     
 +monconteneur    STOPPED 0              -        -    false        
 +
 +root@ns334000:/var/lib/lxc/monconteneur# lxc-start monconteneur
 +
 +root@ns334000:/var/lib/lxc/monconteneur# lxc-ls -f
 +NAME    STATE   AUTOSTART GROUPS IPV4     IPV6 UNPRIVILEGED 
 +(...)
 +monconteneur    RUNNING 0              10.0.3.13 -    false
 +
 +root@server:/var/lib/lxc/monconteneur# lxc-attach monconteneur
 +root@monconteneur:/#
 +</code>
 +
 +__Source :__ [[https://stackoverflow.com/questions/23427129/how-do-i-backup-move-lxc-containers|https://stackoverflow.com/questions/23427129/how-do-i-backup-move-lxc-containers]]
 +
 +
 ===== Cas pratiques ===== ===== Cas pratiques =====
   * [[Le site de caliban.be dans LXC]]   * [[Le site de caliban.be dans LXC]]
 +  * [[Duniter dans LXC]] 
 +  * [[Nextcloud dans LXC]] 
 +  * [[Nextcloud dans LXC - 2]] 
 +  * [[https://simonlefort.be/nginx#installation_de_nginx_dans_un_conteneur_lxc|Nginx dans LXC]] 
 +  * [[https://simonlefort.be/postfix#installation_de_postfix_dans_un_conteneur_lxc|Postfix dans LXC]] 
 +  * [[Yunohost dans LXC]]
 ===== Soucis rencontrés ===== ===== Soucis rencontrés =====
-==== Locale ====+==== Locales ====
 <code bash> <code bash>
 perl: warning: Setting locale failed. perl: warning: Setting locale failed.
Ligne 273: Ligne 416:
   * [[https://xn--1ca.se/lxc-linux-containers/|xn--1ca.se]]   * [[https://xn--1ca.se/lxc-linux-containers/|xn--1ca.se]]
   * [[https://linux-ariege.eu.org/index.php?article13/les-conteneurs-lxc|linux-ariege.eu.org]] - les conteneurs lxc   * [[https://linux-ariege.eu.org/index.php?article13/les-conteneurs-lxc|linux-ariege.eu.org]] - les conteneurs lxc
 +  * [[https://stackoverflow.com/questions/23427129/how-do-i-backup-move-lxc-containers|How do i backup and move lxc containers]]