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

Déployer une installation de production Docker MariaDB

Si vous envisagez d'installer MariaDB sur votre système, vous souhaiterez peut-être l'isoler du reste du système afin de ne rien casser. Certes, vous pouvez utiliser une machine virtuelle, mais cela nécessiterait beaucoup de ressources car vous devrez installer un système entier au-dessus d'un autre. Alors pourquoi ne pas déployer un Docker pour MariaDB ?

Si votre matériel est limité, ce n'est pas un problème, Docker peut vous aider ! Docker est une solution de virtualisation légère. Et dans ce didacticiel, vous apprendrez à déployer une installation de production de serveur Docker pour MariaDB dans un conteneur Docker en utilisant moins de ressources.

Continuez à lire et ne gaspillez plus jamais vos ressources !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants.

  • Une machine Linux :cette démo utilise Ubuntu 20.04 LTS, mais toutes les distributions Linux fonctionneront.
  • Docker installé sur votre machine.
  • Un utilisateur non root avec des privilèges sudo.

Travailler avec l'image Docker MariaDB

La meilleure façon de commencer à travailler avec MariaDB sur votre machine est d'utiliser l'image Docker officielle pour MariaDB. L'image contient une installation de la dernière version stable de MariaDB, ainsi que des scripts pour vous aider à gérer le conteneur.

1. Exécutez la apt update commande ci-dessous pour vous assurer que votre système est à jour. Cette commande récupère les dernières listes de packages à partir des référentiels d'Ubuntu et installe tous les packages disponibles.

sudo apt update -y

2. Ensuite, exécutez le systemctl commande ci-dessous pour démarrer le docker un service.

sudo systemctl start docker

Le démarrage du service Docker ne fournit pas de sortie. Mais si vous exécutez des commandes liées à Docker alors que Docker n'est pas en cours d'exécution, vous obtiendrez l'erreur suivante.

3. Exécutez le docker status commande ci-dessous pour s'assurer que le docker service est en cours d'exécution.

 sudo service docker status 

Ci-dessous, vous pouvez voir que le service Docker est actif (en cours d'exécution).

4. Enfin, exécutez le gpasswd commande ci-dessous pour ajouter votre utilisateur actuel au docker grouper. Cela permet à l'utilisateur d'exécuter docker commandes.

sudo gpasswd -a "${USER}" docker

Ajouter l'utilisateur actuel au docker group vous évite l'erreur suivante lors de l'exécution d'une commande docker.

5. Exécutez la docker search ci-dessous commande pour rechercher l'image MariaDB. Cette commande recherche dans le Docker Hub (ensemble officiel de référentiels) les images qui correspondent à mariadb et renvoie les résultats.

sudo docker search mariadb

Cochez toutes les images que vous souhaitez utiliser pour installer MariaDB. Cette démo utilise l'image officielle nommée mariadb car elle est bien entretenue.

La colonne OFFICIELLE affiche un statut OK si une image est officielle. Si l'image n'a pas le statut OK, l'image est fournie par un développeur communautaire. Dans ce cas, vous devrez contacter le développeur si vous rencontrez des problèmes avec l'image.

6. Maintenant, exécutez le docker pull pour télécharger l'image que vous avez choisie (à l'étape cinq) à partir du référentiel Docker. Cette commande télécharge (pull ) l'image sélectionnée à partir de son référentiel officiel et l'enregistre sur votre ordinateur local.

sudo docker pull mariadb

Une fois la commande terminée, vous obtiendrez la dernière version stable de l'image MariaDB sur votre serveur, comme indiqué ci-dessous.

Si vous préférez installer les versions précédentes, vous pouvez utiliser les balises disponibles pour cette image. Accédez à Balise(s) d'image colonnes dans dockerhub pour afficher toutes les versions, puis exécutez la commande docker pull et spécifiez la version exacte, comme indiqué ci-dessous. sudo docker pull mariadb:10.2

7. Enfin, exécutez les docker images commande pour lister toutes les images présentes sur votre serveur. À ce stade, vous devriez avoir une image MariaDB Docker valide sur votre serveur.

sudo docker images

Ci-dessous, vous pouvez voir que mariadb est le nom de l'image docker avec une balise comme la plus récente.

Création d'un conteneur MariaDB pour exécuter un serveur MariaDB local

Maintenant que vous avez l'image MariaDB sur votre serveur, vous pouvez exécuter un conteneur à l'aide de cette image. Un conteneur est un environnement d'exécution isolé, contrôlé par les ressources et portable qui s'exécute sur un système d'exploitation.

Vous devez d'abord créer un nouveau opt/mariadb/backup répertoire sur votre serveur pour stocker le fichier de sauvegarde que vous allez créer dans cette démo. La sauvegarde de vos données dans votre environnement de production est cruciale avant d'apporter des modifications en cas de problème.

Lorsque vous modifiez le volume interne d'un conteneur, cette modification est copiée dans le répertoire hôte mappé. Donc, pour conserver une copie de sauvegarde de toutes les données du conteneur, vous allez créer le volume sur le serveur local.

1. Exécutez la commande ci-dessous pour créer le opt/mariadb/backup annuaire. Le -p L'option garantit que le répertoire parent existe avant de créer ce répertoire.

Si l'un des répertoires parents du chemin n'existe pas, la commande échouera.

sudo mkdir -p opt/mariadb/backup

2. Ensuite, exécutez le docker run commande ci-dessous pour créer un conteneur Docker à partir de mariadb image. Cette commande effectue les actions suivantes :

  • Cartes (-v ) le répertoire par défaut pour contenir les données MariaDB (/var/lib/mysql ) sur votre conteneur Docker sur votre répertoire hôte (/opt/mariadb/backup ).
  • Déclare la variable d'environnement MariaDB (-e ) MYSQL_ROOT_PASSWORD pour contenir le mot de passe root du serveur MariaDB. Assurez-vous de remplacer ata123 avec votre mot de passe sécurisé.
  • Demande à Docker de démarrer le conteneur en mode détaché (-d ), de sorte que le conteneur s'exécute en arrière-plan. Cela vous permet de quitter la session en cours et de continuer à travailler pendant que ce conteneur s'exécute en arrière-plan. Sinon, vous obtiendrez une invite vide et vous devrez tuer le conteneur en cours d'exécution.
  • Spécifie le nom du conteneur (--name mariadbata ) créer. Vous pouvez remplacer mariadbata avec votre nom préféré unique.
  • Expose le port MariaDB 3306 par défaut à la machine hôte (-p 3306:3306 ) (où le service MariaDB écoute vos connexions client). Dans le cas du serveur de production, vous mapperez le port par défaut sur le port de production. Mais vous pouvez remplacer 3306 avec un autre numéro de port de production.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb

À ce stade, le conteneur est créé et s'exécute en arrière-plan, mais vous ne pouvez jamais en être trop sûr. Vous vérifierez donc le conteneur à l'étape suivante.

3. Exécutez le docker ps commande pour vérifier si votre conteneur Docker est actif ou non.

sudo docker ps

Vous pouvez voir ci-dessous que le conteneur mariadbata est Up depuis 7 minutes, écoutant sur le port 3306 sur toutes les interfaces hôtes. Vous pouvez également voir l'ID (3a7fa779b559) du conteneur.

Vous pouvez utiliser cet ID unique pour vous connecter au conteneur, répertorier les conteneurs, arrêter les conteneurs ou supprimer le conteneur.

4. Maintenant, exécutez le docker exec commande ci-dessous pour vérifier la version du serveur MariaDB dans le mariadbata récipient.

sudo docker exec -it mariadbata mysql -V

Au moment de la rédaction, la dernière version de mariadb est 10.6.5, comme indiqué ci-dessous, et votre version peut être différente. Étant donné que MariaDB est un fork de MySQL, Docker a utilisé le client mysql comme client par défaut pour interagir avec le service MariaDB illustré ci-dessous.

5. Exécutez la commande ci-dessous pour entrer dans le shell MariaDB (/bin/bash ).

sudo docker exec -it mariadbata /bin/bash

L'invite passe du shell Ubuntu au shell MariaDB, comme indiqué ci-dessous.

Vous pouvez voir ci-dessous l'ID de conteneur (3a7fa779b559) que vous avez vu à l'étape trois. Voir l'ID du conteneur dans l'invite indique que vous êtes actuellement dans le conteneur mariadbata.

Une fois à l'intérieur du conteneur, vous pouvez exécuter n'importe quelle commande avec le préfixe sudo puisque vous êtes maintenant l'utilisateur root de ce conteneur.

Par exemple, vous pouvez exécuter la commande apt update ci-dessous pour mettre à jour la base de données du package à l'intérieur du conteneur sans le préfixe sudo.

apt update -y

6. Enfin, exécutez le exit commande pour quitter le shell MariaDB et revenir à votre shell hôte Ubuntu.

exit

Accéder à MariaDB Shell depuis le terminal hôte

Vous pouvez également accéder au shell MariaDB directement depuis le terminal hôte en installant le client MariaDB sur l'hôte. Cela est utile dans les situations où vous ne souhaitez pas basculer vers le shell du conteneur à chaque fois.

1. Exécutez l'apt install commande ci-dessous pour installer le client MariaDB sur votre hôte Ubuntu.

sudo apt install -y mariadb-client

2. Ensuite, exécutez le docker inspect commande ci-dessous pour trouver l'adresse IP du conteneur en cours d'exécution.

sudo docker inspect container-name | grep IPAddress

3. Lancez maintenant le mysql commande ci-dessous pour se connecter à l'instance de base de données depuis votre hôte (-h ) avec votre nom d'utilisateur (root ) et mot de passe (-p ). N'oubliez pas de remplacer host_ip avec l'adresse IP de votre conteneur Docker en cours d'exécution.

sudo mysql -u root -p -h host_ip

4. Entrez le mot de passe que vous avez configuré précédemment (ata123 ) à l'étape 2 lorsque vous y êtes invité, et l'invite du client MariaDB s'affiche, comme indiqué ci-dessous.

Vous pouvez ensuite exécuter n'importe quel code SQL dont vous avez besoin pour exécuter sur le serveur MariaDB.

5. Enfin, exécutez le ls commande ci-dessous pour lister les fichiers de sauvegarde (opt/mariadb/backup ) du conteneur MariaDB.

ls -l opt/mariadb/backup

Vous verrez une liste de fichiers similaires ci-dessous. La sortie indique que vous avez créé avec succès une sauvegarde du conteneur mariadbata. Vous pouvez copier les fichiers vers un autre emplacement sur votre hôte si nécessaire.

Arrêter et retirer le conteneur

Vous souhaitez peut-être libérer des ressources RAM ou CPU. Si c'est le cas, vous pouvez arrêter le conteneur en exécutant le docker stop commande et en spécifiant soit l'ID du conteneur, soit le nom du conteneur.

1. Exécutez l'une des commandes ci-dessous pour arrêter un conteneur spécifique.

# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559

À ce stade, le conteneur est arrêté mais vivra toujours sur votre hôte, et les données restent.

2. Maintenant, exécutez le docker ps commande ci-dessous pour tout lister (-a ) conteneurs.

docker ps -a

Comme vous le voyez ci-dessous, le conteneur s'affiche toujours mais est dans un état Quitté, ce qui indique que le conteneur est arrêté.

3. Enfin, exécutez la commande ci-dessous pour supprimer (rm ) le conteneur arrêté (mariadbata ). La possibilité de supprimer un conteneur est pratique lorsque l'image Docker ne répond pas à vos besoins ou que vous souhaitez simplement recommencer.

Notez que vous devez d'abord arrêter le conteneur avant de le supprimer avec la commande docker rm.

sudo docker rm mariadbata

Si vous préférez supprimer l'intégralité du conteneur avec ses volumes de données pour économiser vos ressources, ajoutez l'option -v avec la commande sudo docker comme celle ci-dessous.

sudo docker rm -v mariadbata

Maintenant, réexécutez la commande docker ps ci-dessous pour répertorier tous les conteneurs afin de vérifier que le conteneur est complètement supprimé.

docker ps -a

Comme vous le voyez ci-dessous, la mariadbata conteneur est parti avec toutes ses données.

Conclusion

Dans ce didacticiel, vous avez appris à créer un conteneur MariaDB Docker sur votre machine hôte Ubuntu. Vous avez également appris à créer un stockage persistant pour vos conteneurs Docker en utilisant des conteneurs de volume de données pour sauvegarder les données du conteneur.

À ce stade, vous pouvez maintenant créer et gérer votre propre conteneur MariaDB Docker sur Ubuntu.

Maintenant, pourquoi ne pas créer un workflow Buddy CI/CD en utilisant un conteneur MariaDB Cocker comme base de données avec ces nouvelles connaissances ? Ou même créer un service MariaDB pour vos applications ?


Docker
  1. Déployer WordPress sur Docker en utilisant Ansible

  2. Déployer Nextcloud sur Docker avec Ansible

  3. Extraire le fichier de l'image Docker ?

  4. Comment déployer des microservices avec Docker

  5. Comment déployer des applications avec Rancher

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

Une brève introduction à Dockerfile

Comment déployer Pi-Hole sur Debian 11

Qu'est-ce qu'un manifeste d'image Docker ?

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

Partage d'images Docker sur Docker Hub