GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Docker :Comment l'utiliser de manière pratique - Partie 3

Partie 3 :Créer un bloc-notes avec des conteneurs WordPress et DokuWiki

Préface

Dans la première partie, nous avons expliqué comment les conteneurs Docker fonctionnent et diffèrent des autres technologies de virtualisation logicielle et dans la deuxième partie , nous avons préparé notre système de gestion des conteneurs Docker.

Dans cette partie, nous allons commencer à utiliser des images Docker et créer des conteneurs de manière pratique. En d'autres termes, nous allons créer un bloc-notes personnel avancé basé sur le Web qui s'exécute sur DokuWiki ou WordPress. Vous pouvez choisir celui avec lequel vous êtes à l'aise.

Comment exécuter un conteneur Docker

Nous devons d'abord nous assurer que le moteur Docker fonctionne comme nécessaire en téléchargeant une image "Hello world" et en créant un conteneur à partir de celle-ci.

N'oubliez pas que lorsque nous parlons d'une image, il s'agit de l'état suspendu, tandis que lorsque nous parlons de conteneur, il s'agit d'une instance d'exécution d'une image docker. Dans une analogie, dont nous avons parlé dans une partie précédente, une image docker est comme le fichier ISO d'une distribution Linux, tandis que le conteneur est la session en direct du fichier ISO comme si vous l'exécutiez à partir d'une clé USB.

Pour télécharger et exécuter l'image "Hello world", tapez simplement dans le terminal

sudo docker lance hello-world

Cette commande télécharge l'image Hello World et l'exécute dans un conteneur. Lorsque le conteneur s'exécute, il imprime un message d'information, puis il se ferme (c'est-à-dire qu'il s'arrête).

Comment vérifions-nous le nombre d'images que nous avons dans notre système ? Eh bien, nous courons simplement

images du menu fixe sudo

Vous vous demandez peut-être comment mon système a trouvé cette image Hello World et d'où vient-elle ? Eh bien, c'est là que le docker hub entre en jeu.

Introduction au hub Docker

Le Docker Hub est une ressource centralisée basée sur le cloud pour la découverte d'images de conteneurs, la création d'images et la distribution de ces images.
Plus précisément, Docker Hub fournit des fonctionnalités et des fonctions utiles dont nous discuterons plus en détail dans les parties ultérieures.

Actuellement, nous nous concentrerons sur une fonctionnalité, à savoir la recherche et le téléchargement d'une image docker.

Recherche d'images Docker

Vous pouvez rechercher une "image Docker prête à télécharger et à exécuter", en visitant simplement le hub Docker en ligne ou en utilisant le terminal. Notez que vous ne pouvez pas télécharger une image docker à partir du hub Web, mais vous pouvez en savoir plus sur une image, comme la façon dont elle est construite et entretenue, etc.

Donc, pour les besoins de cette partie, nous nous concentrerons sur l'utilisation de la voie terminale. Cherchons WordPress

sudo docker recherche wordpress

Comme vous pouvez le voir, il existe des tonnes d'images de docker WordPress, qui sont construites avec diverses combinaisons (par exemple avec ou sans inclusion de base de données), elles sont notées avec des étoiles de popularité et elles sont soit officielles (maintenues par la société docker) soit automatisées (construites et entretenu par des particuliers). Il est évident que n'importe qui peut créer un compte et télécharger son image docker personnalisée et nous en discuterons dans une partie ultérieure.

Télécharger une image Docker

Pour les besoins de cet article, nous utiliserons la dernière version de l'image docker de bitnamis, qui est livrée avec MySQL préinstallé. Alors téléchargeons-le :

sudo docker pull bitnami/wordpress:latest

Une fois que vous avez exécuté la commande ci-dessus, il communiquera avec le hub Docker, demandera s'il existe un référentiel nommé "bitnami", puis demandera s'il existe une version "WordPress" qui est étiquetée comme la "dernière" version.

Actuellement, nous avons téléchargé une image WordPress et rien d'autre. Nous pouvons procéder maintenant en téléchargeant une image DokuWiki en en recherchant une et en sélectionnant celle que nous aimons, ou en utilisant celle qui est la suivante

sudo docker pull mprasil/dokuwiki

L'architecture des images Docker

En attendant la fin de la procédure de téléchargement, vous pouvez voir qu'une image Docker est une image multicouche au-dessus d'une image de base. Vous pouvez voir chaque couche téléchargée et ensuite "magiquement" être unifiée. Le schéma ci-dessous montre une image de base Ubuntu comprenant 4 couches d'images empilées.

Comme vous pouvez l'imaginer, chaque image Docker fait référence à une liste de couches en lecture seule qui représentent les différences de système de fichiers. Lorsque vous créez un nouveau conteneur, à partir d'une image Docker comme nous le ferons plus tard, vous ajoutez une nouvelle couche fine et inscriptible au-dessus de la pile sous-jacente. Toutes les modifications apportées au conteneur en cours d'exécution, telles que l'écriture de nouveaux fichiers, la modification de fichiers existants et la suppression de fichiers, sont écrites dans cette couche de conteneur inscriptible mince. Le diagramme ci-dessous montre un conteneur basé sur l'image Ubuntu 15.04.


Supprimer une image Docker

Maintenant, si vous vérifiez combien d'images vous avez sur votre système

images du menu fixe sudo

vous verrez WordPress, DokuWiki et Hello World. Si pour une raison quelconque vous souhaitez retirer et supprimer (rmi) une image il vous suffit de taper

sudo docker rmi 

où le nom de l'image est le nom du docker tel qu'il est affiché avec la commande "docker images". Par exemple, si nous voulons supprimer le Hello World, nous pouvons simplement taper :

sudo docker rmi hello-world

Les conteneurs sont éphémères

De par leur conception, les conteneurs Docker sont éphémères. Par "éphémère", nous entendons qu'un conteneur peut être arrêté et détruit et qu'un nouveau peut être construit à partir de la même image Docker et mis en place avec un minimum absolu d'installation et de configuration.

Ainsi, vous devez garder à l'esprit que lorsque nous créerons un conteneur à partir de l'image Docker de votre choix (WordPress ou DokuWiki), toutes les modifications que vous apporterez, par ex. l'ajout d'un message, d'une image, sera perdu une fois que vous aurez arrêté ou supprimé le conteneur. En d'autres termes, lorsqu'un conteneur est supprimé, toutes les données écrites dans le conteneur qui ne sont pas stockées dans un volume de données sont supprimées avec le conteneur.

Un volume de données est un répertoire ou un fichier du système de fichiers de l'hôte Docker qui est monté directement dans un conteneur. De cette façon, vous pouvez échanger des conteneurs avec de nouveaux et conserver toutes les données en toute sécurité dans le dossier de départ de vos utilisateurs. Notez que vous pouvez monter n'importe quel nombre de volumes de données dans un conteneur. Même plusieurs conteneurs peuvent également partager un ou plusieurs volumes de données.

Le schéma ci-dessous montre un seul hôte Docker (par exemple, votre Ubuntu 15.10) exécutant deux conteneurs. Comme vous pouvez le constater, il existe également un seul volume de données partagé situé dans /data sur l'hôte Docker. Ceci est monté directement dans les deux conteneurs.

Ainsi, lorsqu'un conteneur est supprimé, toutes les données stockées dans des volumes de données persistent sur l'hôte Docker et peuvent être montées sur un nouveau conteneur.

Mise en réseau du conteneur Docker

Lorsque vous installez Docker, il crée un périphérique réseau dans votre système. Vous pouvez l'afficher (il sera nommé docker0) dans le cadre de la pile réseau d'un hôte en utilisant la commande "ifconfig" sur votre système hôte.

Il est important de comprendre que les conteneurs Docker sont isolés et qu'il s'agit de micro-services individuels qui ont leurs propres propriétés réseau et la façon dont nous les exécutons et nous nous y connectons en mappant leur numéro de port sur un numéro de port du système hôte.

De cette façon, nous pouvons exposer le service Web qu'un conteneur exécute au système hôte.

Créer un bloc-notes personnel avec un conteneur WordPress

Commençons par créer notre bloc-notes de test. Nous allons d'abord utiliser l'image WordPress pour créer un conteneur Docker

sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpress

Avec la commande ci-dessus, nous avons demandé au service Docker de notre système hôte de créer et d'exécuter (docker run) un conteneur nommé `mynotepad` (--name=mynotepad), de mapper les ports HTTP et HTTPS de l'hôte et du conteneur ( -p 80:80 -p 443:443 ) et utilisez l'image WordPress ( bitnami/wordpress )

Une fois le conteneur initialisé, vous serez accueilli avec quelques informations sur le conteneur. Il est temps de lancer un navigateur et de le faire pointer vers http://localhost

Si tout s'est bien passé, vous verrez le site Web WordPress par défaut

Comme vous le savez peut-être déjà pour vous connecter à la page d'administration de WordPress, il vous suffit d'aller sur http://localhost/login et d'utiliser les identifiants par défaut user/bitnami. Ensuite, vous pouvez créer un nouvel utilisateur ou un article de test dans WordPress et le publier. Vous pouvez voir mon article de test dans l'image ci-dessous

Revenons au terminal. Comme vous pouvez le voir, votre terminal est actuellement lié au conteneur en cours d'exécution. Vous pouvez utiliser Ctrl+C pour quitter. Cela arrêtera également le conteneur.

Vérifions maintenant nos conteneurs disponibles. Vous pouvez exécuter la commande suivante :

sudo docker ps -l

pour afficher le conteneur que nous avions précédemment créé et exécuté.

Comme vous pouvez le voir sur l'image ci-dessus, il existe des informations importantes telles que le nom du conteneur et l'ID unique du conteneur. De cette façon, nous pouvons redémarrer le conteneur :

docker démarrer mynotepad

Ensuite, vous pouvez vérifier les processus exécutés par le conteneur Docker, avec la commande suivante :

sudo docker top mynotepad

Par défaut, avec `docker start mynotepad`, le conteneur docker s'exécute en arrière-plan. Pour l'arrêter, vous pouvez exécuter la commande suivante

sudo docker stop mon bloc-notes

Vous pouvez en savoir plus sur la façon d'interagir avec le conteneur dans la documentation officielle du docker https://docs.docker.com/engine/userguide/containers/usingdocker/

Où sont les conteneurs

Si vous voulez voir où se trouvent les conteneurs sur le système de fichiers hôtes, vous pouvez vous diriger vers /var/lib/docker

sudo cd /var/lib/docker
sudo ls
conteneurs sudo cd
sudo cd ID
sudo ls

Comme vous pouvez le voir, les numéros d'identification représentent les conteneurs réels que vous avez créés.

Création d'un stockage persistant

Créons un nouveau conteneur WordPress, mais cette fois-ci, placez-le en arrière-plan et exposez également le dossier WordPress à notre système hôte afin que nous puissions y mettre des fichiers ou supprimer tous les fichiers dont nous ne voulons pas.

Nous créons d'abord un dossier dans notre répertoire personnel

mkdir ~/wordpress-files

puis exécutez et créez un conteneur basé sur la même image que celle que nous avons créée la précédente :

sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpress 

La différence, cette fois, c'est que nous avons utilisé le paramètre -d pour le mode détaché et le paramètre -ti pour attacher un terminal en mode interactif afin que je puisse interagir avec lui plus tard.

Pour vérifier le conteneur en cours d'exécution, exécutez simplement la commande suivante

sudo docker ps

Arrêtons le conteneur

sudo docker stop mynotepad-v2

Maintenant, si vous exécutez la commande `docker ps`, vous ne verrez rien.
Recommençons avec la commande suivante :

sudo docker start mynotepad-v2

Si vous cochez le dossier que nous avons créé précédemment, vous verrez l'installation de WordPress

Vous pouvez en savoir plus sur l'image que nous avons utilisée sur le hub docker https://hub.docker.com/r/bitnami/wordpress/

Créer un bloc-notes personnel avec un conteneur DokuWiki

Cette fois, nous allons créer un bloc-notes à l'aide de DokuWiki. Comme nous avons précédemment téléchargé l'image, il ne reste plus qu'à créer un conteneur à partir de celle-ci.

Exécutons donc la commande suivante pour créer notre conteneur nommé `mywikipad`

docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

Ensuite, rendez-vous sur votre navigateur et ajoutez l'adresse suivante pour démarrer la configuration de votre bloc-notes wiki :

http://localhost/install.php

Vous pouvez en savoir plus sur DokuWiki dans la documentation officielle et personnaliser le wiki selon vos besoins :

https://www.dokuwiki.org/manual

Supprimer un conteneur Docker

Une fois que vous serez à l'aise avec la création, le démarrage et l'arrêt des conteneurs Docker, vous devrez nettoyer le gâchis de test créé par les multiples conteneurs.

Pour supprimer un conteneur, vous devez d'abord l'arrêter, puis le supprimer en exécutant la commande suivante :

docker rm 

Vous pouvez également ajouter plusieurs ID dans la même commande `docker rm` pour supprimer plusieurs conteneurs Docker en même temps.

Résumé

Dans cette partie, nous avons appris à créer un conteneur et à l'utiliser de manière pratique pour créer un bloc-notes personnel basé sur WordPress ou DokuWiki. Nous avons examiné quelques commandes de base sur la manière de démarrer et d'arrêter les conteneurs que nous créons et sur la manière de supprimer les images et les conteneurs.

Dans la prochaine partie, nous verrons comment les images docker sont créées en créant les nôtres.


Docker
  1. Comment déplacer des images Docker entre les hôtes

  2. Comment réduire la taille de l'image Docker :6 méthodes d'optimisation

  3. Comment utiliser Docker Compose

  4. Comment utiliser un Dockerfile pour créer une image Docker

  5. Comment utiliser la commande Docker Inspect

Comment installer et utiliser Docker sur Ubuntu 22.04

Qu'est-ce que Docker Compose et comment l'utiliser ?

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment réduire la taille de l'image Docker dans les conteneurs Docker

Comment utiliser Docker Enregistrer l'image et l'exporter pour le partage

Comment utiliser Docker Commit pour modifier les images de conteneur