GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer le conteneur Linux avec LXC sur Ubuntu 16.04

Les conteneurs Linux (LXC) sont un logiciel de virtualisation open source et léger au niveau du système d'exploitation qui nous aide à exécuter plusieurs systèmes Linux isolés (conteneurs) sur un seul hôte Linux. LXC fournit un environnement Linux aussi proche qu'une installation Linux standard mais sans avoir besoin d'un noyau séparé. LXC ne remplace pas les logiciels de virtualisation standard tels que VMware, VirtualBox et KVM, mais il est suffisant pour fournir un environnement isolé qui possède son propre processeur, sa mémoire, ses blocs d'E/S et son réseau.

LXC est publié sous licence GNU LGPLv2.1+. Le projet LXC est sponsorisé par Canonical Ltd, qui est à l'origine du système d'exploitation Ubuntu.

Dans ce guide, je vais vous montrer comment installer LXC sur Ubuntu 16.04, et créer et gérer LXC en utilisant la ligne de commande ainsi qu'en utilisant le portail Web LXC .

Ce tutoriel devrait également fonctionner sur les versions précédentes d'Ubuntu, telles que Ubuntu 14.04 / 14.10 / 15.04 / 15.10

Prérequis :

Les conteneurs LXC utilisent un pont réseau pour avoir accès à/depuis un réseau externe, avant de démarrer le conteneur, nous devons créer un pont réseau sur Ubuntu.

Suivez les étapes pour configurer le pontage sur Ubuntu ; Je crée une interface pontée "br0 " en utilisant la carte ethernet " ens33

$ sudo nano /etc/network/interfaces# fichier interfaces(5) utilisé par ifup(8) et ifdown(8)auto loiface lo inet loopback##Bridge Name ### auto br0### Informations sur le pont iface br0 inet staticbridge_ports ens33bridge_stp offbridge_fd 9### Pont IP ### adresse 192.168.12.15masque de réseau 255.255.255.0réseau 192.168.12.0diffusion 192.168.12.255passerelle 192.168.12.2dns-nameservers 8.8.8.8

Installez LXC sur Ubuntu 16.04 :

Il est maintenant temps d'installer LXC. Installez le LXC et d'autres packages pour que les conteneurs fonctionnent correctement.

$ sudo apt-get install lxc lxc-templates wget bridge-utils

Exécutez la commande suivante pour vérifier que tout va bien pour exécuter des conteneurs.

Configuration $ sudo lxc-checkconfigKernel introuvable dans /proc/config.gz ; recherche... Configuration du noyau trouvée dans /boot/config-4.4.0-15-generic--- Espaces de noms --- Espaces de noms :enabledUtsname namespace :enabledIpc namespace :enabledPid namespace :enabledUser namespace :enabledNetwork namespace :enabledPlusieurs instances /dev/pts :activé--- Groupes de contrôle ---Cgroup :activéCgroup clone_children flag :enabledCgroup device :enabledCgroup sched :enabledCgroup cpu account :enabledCgroup memory controller :enabledCgroup cpuset :enabled--- Misc ---Veth pair device :enabledMacvlan :enabledVlan :enabledBridges :enabledAdvanced netfilter:enabledCONFIG_NF_NAT_IPV4:enabledCONFIG_NF_NAT_IPV6:enabledCONFIG_IP_NF_TARGET_MASQUERADE:enabledCONFIG_IP6_NF_TARGET_MASQUERADE:enabledCONFIG_NETFILTER_XT_TARGET_CHECKSUM:enabledFUSE (pour une utilisation avec lxcfs):activé --- Point de contrôle / restauration --- checkpoint restauration:enabledCONFIG_FHANDLE:enabledCONFIG_EVENTFD:enabledCONFIG_EPOLL:enabledCONFIG_UNIX_DIAG:enabledCONFIG_INET_DIAG:enabledCONFIG_PACKET_DIAG:enabledCONFIG_NETLINK_DIAG:en Capacités abledFile :enabledRemarque :Avant de démarrer un nouveau noyau, vous pouvez vérifier sa configurationusage :CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Configuration du réseau LXC :

Désactiver le pont par défaut "lxcbr0 ", a été créé dans le cadre de l'installation de LXC.

$ sudo nano /etc/default/lxc-net

Définissez "USE_LXC_BRIDGE " à " faux ".

USE_LXC_BRIDGE="false"

Configurez LXC pour utiliser le pont "br0 “, que nous avons créé plus tôt. Si vous avez déjà configuré un autre pont, vous pouvez le définir dans le fichier ci-dessous.

$ sudo nano /etc/lxc/default.conf
lxc.network.type =vethlxc.network.link =br0  # Remplacer par le nom de votre pont lxc.network.flags =uplxc.network.hwaddr =00:16:3e:xx:xx:xx
Redémarrez le serveur afin d'activer le pont réseau

Création du premier conteneur Linux :

LXC vous fournit les modèles prêts à l'emploi pour une installation facile des conteneurs Linux. Les modèles se trouvent généralement dans /usr/share/lxc/templates .

$ sudo ls /usr/share/lxc/templates/lxc-alpine    lxc-archlinux  lxc-centos  lxc-debian    lxc-fedora  lxc-openmandriva  lxc-oracle  lxc-slackware   lxc-sshd    lxc-ubuntu-cloudlxc-altlinux  lxc -busybox    lxc-cirros  lxc-download  lxc-gentoo  lxc-opensuse      lxc-plamo   lxc-sparclinux  lxc-ubuntu

Créons notre premier conteneur Ubuntu, lancez la commande suivante dans le terminal

$ sudo lxc-create -n ubuntu_lxc -t ubuntu

Où,

-n

-t

LXC commencera à créer le conteneur "ubuntu_lxc ", vous obtiendrez quelque chose comme ci-dessous.

Exemple de résultat :

Vérification du téléchargement du cache dans /var/cache/lxc/xenial/rootfs-amd64 ...Installation des packages dans le modèle :ssh,vim,language-pack-enTéléchargement d'ubuntu xenial minimal ...I :Récupération de InReleaseI :Vérification de la signature de versionI :Signature de version valide (ID de clé 790BC7277767219C42C86F933B4FE6ACC0B21F32)I :Récupération de packagesI :Validation de packagesI :Récupération de packagesI :Validation de packagesI :Résolution des dépendances des packages requis...I :Résolution des dépendances des packages de base... . . . Télécharger completeCopy /var/cache/lxc/xenial/rootfs-amd64 to /var/lib/lxc/ubuntu_lxc/rootfs ...Copying rootfs to /var/lib/lxc/ubuntu_lxc/rootfs ...Generating locales (cela peut prendre un moment)...  fr_IN.UTF-8... doneGeneration complete.Creating SSH2 RSA key; Cela peut prendre un certain temps ... 2048 SHA256:2Gy + KoavdyefbkzsJuemtv5pxumnvpiltxCazryspja root @ raj-virtual-machine (RSA) créant une clé DSA SSH2; Cela peut prendre un certain temps ... 1024 sha256:+ pxvakgv7kuds2inf7akbyhme58oiopjftnfwj1fpk0 root @ raj-virtual-machine (dsa) créant une clé ecdsa ssh2; Cela peut prendre un certain temps ... 256 SHA256:VH1U7WGEMPMEZTWVIDZT34FTSQ + OQUKBPJZAZJP1KHC ROOT @ RAJ-Virtual-Machine (ECDSA) Création de la clé SSH2 ED25519; Cela peut prendre un certain temps ... 256 SHA256:qzvwvynmJusdzhq5ij / r8uswbkrsg2vwcevmjgfzk root @ raj-virtual-machine (ed25519) invoke-rc.d:politique-rc.d exécution déniée de start.current fuseau horaire:'etc / utc' L'heure locale est maintenant :      jeu 7 avril 17:53:19 UTC 2016. L'heure universelle est maintenant :  jeu 7 avril 17:53:19 UTC 2016.### L'utilisateur par défaut est 'ubuntu' avec le mot de passe 'ubuntu'  !# Utilisez la commande 'sudo' pour exécuter des tâches en tant que root dans le conteneur.##

Veuillez noter les informations de connexion, vous auriez besoin de ces informations pour vous connecter aux conteneurs.

Si vous souhaitez créer un conteneur basé sur Ubuntu 14.04, utilisez la commande suivante.

$ sudo lxc-create  -t ubuntu -n trusty_lxc -- -r trusty -a amd64

-r

-a

Démarrage des conteneurs Linux :

Une fois après avoir créé les conteneurs, démarrez-le à l'aide de la commande suivante, -d pour exécuter les conteneurs en arrière-plan.

$ sudo lxc-start -n ubuntu_lxc -d

Maintenant, prenez une console du conteneur en utilisant la commande suivante.

$ sudo lxc-console -n ubuntu_lxc

Entrez le nom d'utilisateur (ubuntu) et le mot de passe (ubuntu) pour vous connecter. Vous pouvez trouver les informations d'identification par défaut à la fin de la sortie lors de la création d'un conteneur.

Exemple de résultat :

Connecté au tty 1Tapez  pour quitter la console,  pour entrer Ctrl+a lui-mêmeUbuntu Xenial Xerus (branche de développement) ubuntu_lxc pts/0ubuntu_lxc login :ubuntu Mot de passe : Bienvenue dans Ubuntu Xenial Xerus (branche de développement) (GNU/Linux 4.4.0-15-generic x86_64) * Documentation :  https://help.ubuntu.com/Les programmes inclus avec le système Ubuntu sont des logiciels gratuits ; les conditions de distribution exactes pour chaque programme sont décrits dans les fichiers individuels dans /usr/share/doc/*/copyright.Ubuntu est livré avec ABSOLUMENT AUCUNE GARANTIE, dans la mesure permise par la loi applicable. ".Voir "man sudo_root" pour plus de détails.ubuntu@ubuntu_lxc:~$

Vous pouvez effectuer tout votre travail dans ce conteneur comme vous le feriez sur un serveur Linux.

Pour quitter la console du conteneur, appuyez sur "Ctrl+a" suivi de "q" . Maintenant, vous serez renvoyé au terminal de l'ordinateur hôte.

Si vous souhaitez vous reconnecter à la console du conteneur (le conteneur est toujours en cours d'exécution), exécutez la commande suivante.

$ sudo lxc-console -n ubuntu_lxc

Travailler avec des conteneurs Linux :

Pour répertorier les conteneurs disponibles sur la machine hôte, utilisez la commande suivante.

$ sudo lxc-lsubuntu_lxc

Utilisez la commande suivante pour répertorier les conteneurs en cours d'exécution sur l'ordinateur hôte.

$ sudo lxc-ls --activeubuntu_lxc

Vous pouvez voir la même sortie pour les deux commandes car je n'ai qu'un seul conteneur en cours d'exécution.

Vous pouvez utiliser la commande suivante pour répertorier les conteneurs avec des informations détaillées.

$ sudo lxc-ls  -fNAME       STATE   AUTOSTART GROUPS IPV4          IPV6ubuntu_lxc RUNNING 0         -      192.168.12.18 -

Pour obtenir les détails du conteneur en cours d'exécution, exécutez la commande suivante.

$ sudo lxc-info -n ubuntu_lxcName :           ubuntu_lxcState :          RUNNINGPID :            2933IP :             192.168.12.18 Utilisation du processeur :        0,90 secondeUtilisation BlkIO :      20,96 Utilisation de la mémoire MiBM :     31,67 Utilisation de la mémoire MiBKM :       0 octetLien :           vethFLQOYF octets TX :      3,21 Kio octets RX :       6,41 Kio octets totaux 2 Ki B 
 Vous pouvez utiliser l'adresse IP pour vous connecter aux conteneurs. 

Vous pouvez arrêter l'exécution des conteneurs à l'aide de la commande "lxc-stop", utilisez la commande suivante pour arrêter "ubuntu_lxc".

$ sudo lxc-stop -n ubuntu_lxc

Cloner des conteneurs :

LXC offre une fonctionnalité de clonage d'un conteneur à partir du conteneur existant, exécutez la commande suivante pour cloner un conteneur "ubuntu_lxc" existant vers un nouveau conteneur "ubuntu_lxc_clone".

Remarque :Vous devez arrêter un conteneur avant de lancer le clonage.

$ sudo lxc-copy -n ubuntu_lxc -N ubuntu_lxc_clone

Vérifiez si un conteneur est créé avec succès.

$ sudo lxc-lsubuntu_lxc       ubuntu_lxc_clone

Vous pouvez démarrer le conteneur cloné et commencer à travailler dessus.

$ sudo lxc-start -n ubuntu_lxc_clone
$ sudo lxc-console -n ubuntu_lxc_cloneConnecté au tty 1Tapez  pour quitter la console,  pour entrer Ctrl+a lui-mêmeUbuntu Xenial Xerus (branche de développement) ubuntu_lxc_clone pts/0ubuntu_lxc_clone login :ubuntuMot de passe : Dernière connexion :sam. 9 avril 16:15:22 UTC 2016 à partir de 192.168.12.1 sur pts/4 /help.ubuntu.com/Pour exécuter une commande en tant qu'administrateur (utilisateur "root"), utilisez "sudo ".Voir "man sudo_root" pour plus de détails.ubuntu@ubuntu_lxc_clone:~$

Éteignez le conteneur depuis la console LXC.

ubuntu@ubuntu_lxc_clone :~$ sudo poweroff

Prendre un instantané :

LXC offre également une autre fonctionnalité appelée l'instantané, suivez les étapes ci-dessous pour effectuer l'instantané.

Remarque :Avant de prendre un instantané, assurez-vous que le conteneur n'est pas en cours d'exécution. Arrêtez un conteneur en cours d'exécution à l'aide de la commande suivante.

$ sudo lxc-stop -n ubuntu_lxc_clone

Pour une démo, prenons un instantané de ubuntu_lxc_clone.

$ sudo lxc-snapshot -n ubuntu_lxc_clone

Exemple de sortie :

lxc-snapshot :lxccontainer.c :do_lxcapi_snapshot :3371 Instantané du conteneur sauvegardé dans le répertoire demandé.lxc-snapshot :lxccontainer.c :do_lxcapi_snapshot :3372 Création d'un clone de copie. Si vous voulez des instantanés, alors lxc-snapshot :lxccontainer.c :do_lxcapi_snapshot :3373 veuillez d'abord créer un clone aufs ou overlayfs, capturez cet instantané lxc-snapshot :lxccontainer.c :do_lxcapi_snapshot :3374 et conservez le conteneur d'origine intact.

Pour savoir où l'instantané est enregistré, exécutez la commande suivante.

$ sudo lxc-snapshot -L -n ubuntu_lxc_clonesnap0 (/var/lib/lxc/ubuntu_lxc_clone/snaps) 2016:04:09 22:35:16

Dans Ubuntu, les instantanés LXC sont stockés dans "/var/lib/lxc//snaps

Restauration de l'instantané :

Pour restaurer un conteneur à partir de l'instantané, nous avons pris plus tôt, utilisez la commande suivante.

$ sudo lxc-snapshot -r snap0 -n ubuntu_lxc_clone

Détruire des conteneurs :

Pour supprimer un conteneur, utilisez la commande suivante.

Remarque :Vous devez supprimer les instantanés avant de détruire les conteneurs. ($ sudo lxc-snapshot -d snap0 -n ubuntu_lxc_clone)

$ sudo lxc-destroy -n ubuntu_lxc_clone

Exécution d'un conteneur CentOS sur Ubuntu 16.04 :

Installez le package "yum" pour les conteneurs basés sur Redhat.

$ sudo apt-get install miam

Créez un conteneur CentOS 7 à l'aide de la commande suivante.

$ sudo lxc-create -n centos_lxc -t centos -- -R 7 -a x86_64Host CPE ID from /etc/os-release:Checking cache download in /var/cache/lxc/centos/x86_64/7/rootfs ... Téléchargement CentOS Minimal ... Base | 3,6 Ko 00:00Base / primaire_db | 5.3 MB 12:26UPDATES | 3,4 kb 00:00Updates / primaire_db | 3,9 Mo     02:17Configuration du processus d'installationRésolution des dépendances--> Exécution de la vérification des transactions---> Le package chkconfig.x86_64 0:1.3.61-5.el7 sera installé Terminé !Fixation de l'emplacement rpmdb ...Téléchargement terminé.Copier /var/ cache/lxc/centos/x86_64/7/rootfs vers /var/lib/lxc/centos_lxc/rootfs ... Copie de rootfs vers /var/lib/lxc/centos_lxc/rootfs ... sed :impossible de lire /var/ lib/lxc/centos_lxc/rootfs/etc/init/tty.conf :aucun fichier ou répertoire de ce type. Stockage du mot de passe root dans '/var/lib/lxc/centos_lxc/tmp_root_pass' Expiration du mot de passe pour l'utilisateur root.passwd :réussi :impossible de lire /var/lib/lxc/centos_lxc/rootfs/etc/rc.sysinit :aucun fichier ou répertoire de ce type :impossible de lire /var/lib/lxc/centos_lxc/rootfs/etc/rc.d/rc.sysinit :aucun Le fichier ou le répertoire Les rootfs et la configuration du conteneur ont été créés. Modifiez le fichier de configuration pour vérifier/activer la configuration du réseau. Le mot de passe racine temporaire est stocké dans :        '/var/lib/lxc/centos_lxc/tmp_root_pass' Le mot de passe root est configuré comme expiré et il faudra le changer lors de la première connexion, ce que vous devez faire dès que possible. Si vous perdez le mot de passe racine ou souhaitez le modifier sans démarrer le conteneur, vous pouvez le modifier depuis l'hôte en exécutant la commande suivante (qui réinitialisera également l'indicateur d'expiration) :        chroot /var/lib/lxc/centos_lxc/rootfs passwd  

Vous pouvez obtenir les informations d'identification par défaut à la fin de la sortie.

Démarrez et prenez une console de conteneur Ubuntu avec la commande suivante. Vous devez changer le mot de passe root lors de la première connexion.

$ sudo lxc-start -n centos_lxc -d$ sudo lxc-console -n centos_lxcConnecté au tty 1 Tapez  pour quitter la console,  pour entrer Ctrl+a lui-même CentOS Linux 7 (Core)Kernel 4.4.0-15-generic sur une connexion x86_64centos_lxc :root Mot de passe : Vous devez changer votre mot de passe immédiatement (root forcé) Modification du mot de passe pour root. Mot de passe UNIX (actuel) : Nouveau mot de passe : Retaper le nouveau mot de passe : [root@centos_lxc ~]# 

C'est tout! Merci d'avoir lu. Soyez social, partagez ceci avec vos amis.


Ubuntu
  1. Configuration du serveur WebDAV sur Ubuntu Linux

  2. Configuration initiale du serveur avec Ubuntu 14.04

  3. Comment installer WordPress avec Docker sur Ubuntu

  4. Comment configurer Android SDK 4.0.3 avec NetBeans IDE 7.1 sur Linux Mint 12 / Ubuntu 11.10

  5. Configurer un point d'accès Wi-Fi dans Linux Mint/Ubuntu

Comment jouer en tant que DJ sur Ubuntu Linux avec Mixxx

Comment configurer GlassFish 4.1 avec JAVA 8 dans Ubuntu 15.04

Comment connecter Kindle Fire HD à Ubuntu Linux

Configurer le conteneur Linux avec LXC sur CentOS 7/RHEL 7

Comment configurer WordPress sur Ubuntu Server avec Apache

Comment configurer le pare-feu avec UFW sur Ubuntu Linux