LXC / LXD

GESTION DES CONTENEURS SOUS LINUX


Installation

Sous Ubuntu 14.04

apt install -t trusty-backports lxd lxd-client

Sous Ubuntu 16.04 et suivantes

apt install lxd lxd-client

Puis, pour configurer LXD :

lxd init


Conteneurs

Créer un conteneur à partir d'une image :

        $ lxc init <nom_image> <nom_du_conteneur>
        Exemple : lxc init ubuntu:18.04 MaMachineUbuntu

Liste les conteneurs :

        $ lxc list

Démarrer un conteneur :

        $ lxc start <nom_du_conteneur>

Mettre un conteneur en pause :

        $ lxc pause <nom_du_conteneur>

Arrêter un conteneur :

        $ lxc stop <nom_du_conteneur>

Exécuter un programme dans un conteneur :

        $ lxc exec <nom_du_conteneur> -- <command>
        Exmple pour un shell bash : lxc exec DoliCg -- /bin/bash


Images

Liste des images locales :

        $ lxc image list

Liste des images disponibles ailleurs :

        $ lxc image list <nom>
        Exemples :
        lxc image list ubuntu:
        lxc image list images:

Créer une image de conteneur :

        $ lxc publish <nom_du_conteneur>[/<snapshot>] [--alias=ImageSrvUbuntu1804InstallBase] [--force]
        Exemple : lxc publish SrvUbuntu1804/InstallBase --alias=ImageSrvUbuntu1804InstallBase

Exporter une image vers un fichier compressé :

        $ lxc image export <alias_de_l_image>

Cela créera un fichier .tar.gz de l'image dans le dossier courant.

Importer un fichier en image :

        $ lxc image import <fichier.tar.gz> [--alias=ALIAS...]


Snapshots

Créer un snapshot :

        $ lxc snapshot <nom_du_conteneur> [nom_du_snapshot] [--stateful]

Liste des snapshots :

        $ lxc snapshot list

Restaurer un snapshot :

        $ lxc restore <nom_du_conteneur> [nom_du_snapshot] [--stateful]

Gestion à distance

Permettre la connexion distante :

        $ lxc config set core.https_address '[::]:8443'
        $ lxc config set core.trust_password <un-mot-de-passe>

Puis, depuis un autre serveur LXC :

        $ lxc remote add <nom-du-serveur> <ADRESSEIP>

Pour voir les conteneurs distants :

        $ lxc list <nom-du-serveur>:

On peut ensuite effectuer toutes les commandes à distance. Par exemple :

        $ lxc exec <nom-du-serveur>:<nom_du_conteneur> -- bash

Chemins

/var/lib/lxd/containers
/var/lib/lxd/images
/var/lib/lxd/snapshots

[ Adresse Bitcoin pour les dons BTC : 1KCZGe7PtxwaWEJf1dHcoqsxbrzypNTvEw ]