GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec Buildah pour la gestion des conteneurs Linux

"Docker,  Docker, Docker ” c'est ce que nous utilisions jusqu'à récemment.

Docker est toujours très populaire, sans aucun doute. Mais comme nous le savons dans l'industrie informatique, l'évolution se produit rapidement. Alors maintenant, nous allons entendre Buildah, Podman, CRI-O, Skopeo .

Si vous voulez faire une analogie - nous avons différents types de baies telles que les baies noires, les myrtilles, les framboises, mais un jour, quelqu'un décide de choisir les myrtilles. Ainsi, parmi Buildah, Podman, CRI-O J'ai décidé de choisir buildah. Pourquoi? Parce que c'est aussi intéressant que les autres plateformes de conteneurs.

Plongeons dans Buildah !

Qu'est-ce que Buildah ?

Buildah est un outil en ligne de commande pour créer des images Open Container Initiative (OCI). Il peut être utilisé avec Docker, Podman, Kubernetes - quel que soit votre outil de conteneur préféré !

Buildah est utilisé pour créer, construire, gérer, exécuter des images de conteneurs ainsi que des conteneurs.

Avec Buildah, vous créez un conteneur de travail à partir d'une image ou à partir de rien. Vous pouvez également créer une image à partir d'un conteneur de travail ou en utilisant Dockerfile. Vous pouvez créer les images au format OCI ou au format Docker en amont. Vous pouvez modifier et supprimer des conteneurs et des images.

La chose la plus intéressante à propos de Buildah est qu'il n'a pas besoin d'un démon pour fonctionner. Alors dites non aux #bigfatdaemons. L'absence de démon donne spécifiquement des étincelles lorsqu'il s'agit d'intégration continue et de livraison continue afin de créer des conteneurs.

Aucun démon signifie également que vous pouvez éliminer le démon de Docker par Buildah pour créer des images de conteneur. Mais cela ne signifie pas que Buildah ne peut pas s'intégrer à Docker. Parce qu'en utilisant Dockerfile, vous pouvez créer, gérer et exécuter votre image de conteneur par Buildah. Impressionnant non ?

Installer Buildah sur Linux

Voyons comment vous salir les mains avec Buildah. Les packages pour Buildah sont disponibles pour Fedora et CentOS. Vous pouvez facilement les installer à l'aide du gestionnaire de packages de votre distribution Linux. Je vais énumérer quelques-uns des plus courants ici :

Pour installer Buildah sur Fedora, utilisez

dnf install buildah -y

Pour installer Buildah sur CentOS ou RedHat :

yum install buildah -y

Pour installer Buildah sur Ubuntu et Debian, vous pouvez utiliser le PPA officiel fourni par Project Atomic.

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt install buildah

Une fois Buildah installé, il est temps de jouer avec.

Commandes de base pour utiliser Buildah

Voici quelques commandes de base pour démarrer avec buildah.

Pour connaître la version de Buildah.

buildah --version

La toute première tâche consiste à extraire l'image du conteneur à partir de référentiels publics ou privés. Pour extraire l'image, buildah utilise la variable "from". La variable 'from' est la même que celle utilisée dans Dockerfile. La différence est que dans Docker, nous spécifions la variable "from" dans Dockerfile, alors que dans Buildah, nous transmettons la variable via la ligne de commande.

buildah from ubuntu

Dans la commande ci-dessus, Ubuntu est mon image de conteneur. Après avoir extrait avec succès l'image basée sur Ubuntu à la fin de la sortie, vous verrez - "ubuntu-working-container".

Une fois que vous savez que vous avez extrait l'image avec succès, vous pouvez maintenant voir la liste des images que vous avez extraites. Mais avant cela, vous vous demandez peut-être « où sont stockées ces images ? ». L'image extraite est stockée sur l'hôte lui-même.

buildah images 
 IMAGE NAME                                               IMAGE TAG            IMAGE ID             CREATED AT             SIZE
 docker.io/library/ubuntu                                 latest               94e814e2efa8         Mar 12, 2019 00:20     91.4 MB
 docker.io/library/fedora                                 latest               d09302f77cfc         Mar 12, 2019 00:20     283 MB

Si vous connaissez déjà les commandes Docker, vous avez peut-être remarqué les similitudes entre les commandes Docker et Buildah. Par exemple, dans Docker, pour voir la liste des images extraites, nous utilisons la commande "docker images".

Voici la commande pour voir la liste des conteneurs en cours d'exécution. Dans Buildah, dès que l'extraction de l'image du conteneur est terminée, ce conteneur commence à s'exécuter. Si vous comparez à Docker, après avoir extrait l'image, nous devons exécuter l'image en utilisant "docker run", puis seul le conteneur commence à s'exécuter.

CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
 1063320d2dc0     *     94e814e2efa8 docker.io/library/ubuntu:latest  ubuntu-working-container
 978a399e0aa7     *     d09302f77cfc docker.io/library/fedora:latest  fedora-working-container

Si vous souhaitez nettoyer et supprimer tous les conteneurs en cours d'exécution, exécutez la commande ci-dessous avec prudence. Parce qu'une fois que vous aurez exécuté la commande, vos conteneurs seront supprimés. Le privilège que nous obtenons dans buildah sur Docker est que Docker ne nous laisse pas supprimer le conteneur en cours d'exécution, mais Buildah le fait. Lors de l'utilisation de Docker, nous devons d'abord arrêter le conteneur, puis seulement nous pouvons supprimer l'image.

buildah rm --all

Si vous êtes bloqué avec une commande, il y a l'option –help.

buildah --help

Voyons quelques cas d'utilisation de Buildah, pour commencer par une mise en œuvre pratique, nous commencerons par simple. Et une fois que vous avez trouvé le rythme avec le Buildah, vous pouvez laisser libre cours à votre créativité et faire des choses intéressantes.

Construire une image de conteneur de serveur Web Apache [Hands On]

Essayons ce que vous venez d'apprendre avec un exemple de projet Buildah.

Que pensez-vous de ce qui sera nécessaire pour qu'un serveur Web Apache s'exécute dans un conteneur ?

Bien sûr, une image, un conteneur en cours d'exécution et quoi d'autre ? Eh bien, la principale chose dont nous aurons besoin est - nous devons installer un package httpd dans un conteneur. Oh! Comment fait-on cela? Pas de soucis. Je vais vous le dire.

Extrayons d'abord une image de distribution Linux. Choisissez celui que vous préférez. J'ai extrait l'image de base CentOS.

buildah from centos

Installez maintenant httpd dans le conteneur CentOS. Vous pouvez le faire en utilisant cette commande :

buildah run centos-working-container yum install httpd -y

Vous verrez une sortie comme celle-ci.

Ce que nous avons fait, c'est que nous avons installé le package httpd sans même entrer dans le conteneur. C'est comme installer les pièces de votre vélo sans même entrer dans le garage. Vous pouvez voir dans la sortie de la commande ci-dessus, le paquet a été installé devant nous. Buildah ne triche pas 😉

Maintenant, créons un fichier index.html personnalisé.

echo "Linux Handbook is interesting !" > index.html

Copiez votre fichier personnalisé index.html dans le chemin du répertoire /var/www/html

buildah copy centos-working-container index.html /var/www/html/index.html
4e955fea0268518cbaa500409dfbec88f0ecebad28d84ecbe250baed97dba889

Vous devez vous demander d'où vient /var/www/html ? Et pourquoi avons-nous copié le fichier index.html sous ce chemin de répertoire ?

Lorsque nous installons le package httpd, le répertoire /var/www/html est créé. /var/www/html n'est que le dossier racine par défaut du serveur Web.

Pour démarrer le conteneur, nous devons configurer point d'entrée pour le conteneur.

buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" centos-working-container

L'option "-DFOREGROUND" est utilisée avec "/usr/sbin/httpd" pour démarrer httpd. Ce que "-DFOREGROUND" fait, c'est que le processus httpd/apache s'exécute au premier plan à la place de l'arrière-plan. L'avantage du processus httpd NON exécuté en arrière-plan est que vous pouvez voir les journaux de débogage sur la console. Si nous n'utilisons pas l'option "-DFOREGROUND", le serveur apache démarrera et juste après, il sera arrêté.

Maintenant, nous devons enregistrer tout ce que nous avons fait à l'intérieur du conteneur. Le commit le fera pour nous.

buildah commit centos-working-container  Linux-Handbook

L'image Linux-Handbook est disponible et vous pouvez pousser cette image vers le registre pour l'utiliser.

buildah images
IMAGE ID IMAGE NAME CREATED 
AT SIZE
9110ae7f579f docker.io/library/centos:latest 
Mar 31, 2019 14:36 234.7 MB
49bd5ec5be71 docker.io/library/Linux-Handbook:latest 
Apr 4, 2019 17:28 427.7 MB

Alors, prêt à vous salir les mains avec Buildah ?

Écrit par Servesha Dudhgaonkar


Linux
  1. Premiers pas avec les pare-feux Linux

  2. 5 conseils pour démarrer avec la sécurité des serveurs Linux

  3. Premiers pas avec Samba pour l'interopérabilité

  4. Premiers pas avec PostgreSQL sous Linux

  5. Premiers pas avec SSH sous Linux

Premiers pas avec le système d'exploitation Linux

Tutoriel Vagrant - Premiers pas avec Vagrant sous Linux

Premiers pas avec Docker Compose sous Linux

Premiers pas avec VirtualBox sous Linux - Partie 1

Premiers pas avec Flutter sur Linux Desktop

Prise en main et installation de Slack pour Linux