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

Comment exécuter MySQL dans Docker Container :un guide simple et facile à suivre

Ce guide explique étape par étape comment configurer un nouveau serveur MySQL exécuté dans un conteneur Docker en quelques minutes seulement.

L'un des avantages de Docker est de pouvoir l'utiliser rapidement pour tester des applications sans l'installer directement sur votre ordinateur. Par exemple, vous pouvez utiliser Docker pour exécuter une base de données dans un conteneur en tant que serveur distant et tester comment votre application interagit avec elle.

L'exécution de MySQL avec des conteneurs Docker est un mécanisme largement utilisé. MySQL est l'une des bases de données les plus utilisées avec les conteneurs Docker.

Pour créer MySQL en tant que conteneur Docker, Docker doit être installé sur la machine hôte. Si vous ne l'avez pas installé, voici un guide étape par étape sur l'installation de Docker dans Ubuntu.

1. Extraire l'image MySQL Docker

La première chose que vous devez faire pour créer et tester le serveur MySQL dans Docker est d'extraire une image officielle MySQL du Docker Hub.

Vous pouvez télécharger une version spécifique telle que 8.0, 5.7, 5.6, ou opter pour la dernière version comme indiqué dans la commande suivante :

sudo docker pull mysql:latest

Si vous voulez une version particulière de MySQL, remplacez le latest   avec le numéro de version.

Vous pouvez exécuter les docker images commande pour voir une liste des images Docker que vous avez extraites du Docker Hub.

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

Comme vous pouvez le voir, l'image MySQL est maintenant disponible pour notre Docker installé localement.

2. Configuration d'un volume Docker

Comme vous le savez, les conteneurs Docker sont, en principe, temporaires, et toute donnée ou configuration devrait être perdue si le conteneur est supprimé.

Les volumes Docker, cependant, fournissent un mécanisme pour conserver les données créées dans un conteneur Docker. Par conséquent, ils constituent le mécanisme préféré de Docker pour stocker les données persistantes des conteneurs Docker.

MySQL stocke ses fichiers de données dans /var/lib/mysql annuaire. Ainsi, avant le déploiement, vous devrez configurer un volume Docker pour conserver votre base de données. Sinon, vos données seront perdues au redémarrage du conteneur.

Créons un nouveau volume et nommons-le mysql-data . Il sera utilisé pour stocker toutes les informations de votre base de données.

sudo docker volume create mysql-data

Vous pouvez lister tous les volumes connus de Docker en exécutant la commande ci-dessous :

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

Comme vous pouvez le voir, notre volume Docker nouvellement créé nommé mysql-data est là et prêt à diffuser des données. Il peut ensuite être attaché à un conteneur MySQL fraîchement lancé.

3. Exécuter un conteneur Docker MySQL

Maintenant que vous avez une image MySQL Docker sur votre machine et un volume pour conserver les données, vous pouvez déployer un conteneur. Vous devez également définir un mot de passe pour l'utilisateur racine MySQL en utilisant le MYSQL_ROOT_PASSWORD variable d'environnement.

Maintenant, exécutons le conteneur :

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

C'est ça. Cela démarrera la dernière version de l'instance MySQL, qui peut être accessible à distance de n'importe où avec le mot de passe root spécifié.

Pour rendre les choses plus transparentes, décomposons cette syntaxe. Tout d'abord, voici ce que chaque paramètre de cette commande signifie :

  • -d exécutera ce conteneur en mode détaché afin qu'il s'exécute en arrière-plan.
  • --name attribue le nom mysql-server à votre instance de conteneur. Si vous ne le spécifiez pas, Docker générera un nom aléatoire.
  • -p liera le port du conteneur MySQL 3306 au même port sur votre machine hôte. Vous pourrez vous connecter à 127.0.0.1 sur le port 3306 en utilisant les clients MySQL (mysql ) s'exécutant sur votre hôte.
  • -v option lier ce dossier de données à l'intérieur du volume du conteneur (/var/lib/mysql ) au volume Docker local (mysql-data ) que vous avez créé à l'étape précédente.
  • -e définit une variable d'environnement. Dans ce cas, le mot de passe root MySQL.
  • mysql est le nom de l'image que nous utilisons pour créer le conteneur.

Vous pouvez vérifier si le conteneur est en cours d'exécution en répertoriant les conteneurs en cours d'exécution :

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4. Connexion au conteneur MySQL

Vous pouvez obtenir un shell MySQL interactif en l'attachant au conteneur et en exécutant le mysql commande. Cela fournit l'interface de ligne de commande MySQL complète pour utiliser toutes les commandes et tous les drapeaux familiers.

sudo docker exec -it mysql-server mysql -u root -p

Vous pouvez également vous connecter à l'instance MySQL Docker à l'aide de mysql client si vous l'avez pré-installé sur votre hôte.

Attention, par défaut, le client mysql essaie de se connecter à l'aide d'un socket UNIX lorsque vous lui dites de se connecter à localhost . Utilisez donc 127.0.0.1 et non localhost .

mysql -u root -h 127.0.0.1 -p

Bien entendu, vous pouvez également utiliser un client basé sur une interface graphique, tel que MySQL Workbench, pour vous connecter à la base de données. Par exemple, dans votre MySQL Workbench pour "Hostname", spécifiez l'adresse IP de la machine sur laquelle vous avez démarré le Docker Container.

Bien sûr, dans les exemples ci-dessus pour un nom d'hôte, vous pouvez utiliser l'adresse IP de la machine sur laquelle le conteneur Docker MySQL fonctionne au lieu de 127.0.0.1.

Vous pouvez trouver cette adresse en exécutant ifconfig commande sans aucun argument.

L'utilisation de l'adresse IP de la machine vous permet d'accéder à distance au serveur MySQL.

5. Arrêter, démarrer et redémarrer le conteneur MySQL

Cette commande va s'arrêter temporairement le conteneur MySQL en cours d'exécution (et peut être repris/redémarré plus tard) :

sudo docker stop mysql-server

Pour commencer le conteneur MySQL, exécutez :

sudo docker start mysql-server

La commande ci-dessous est utilisée pour redémarrer le conteneur MySQL en cours d'exécution :

sudo docker restart mysql-server

Conclusion

Comme vous pouvez le voir, exécuter MySQL dans Docker est beaucoup plus rapide et plus facile que d'installer MySQL Server localement. Cependant, il y a beaucoup d'autres choses à prendre en compte si vous comptez utiliser MySQL sur Docker pour quoi que ce soit au-delà des tests.

Vous pouvez consulter la page MySQL sur Docker Hub et le manuel officiel de MySQL sur le sujet pour plus d'informations.

Faites-moi savoir si vous avez des questions ou des suggestions. Je serai heureux de vous suivre.


Docker
  1. Comment exécuter Nginx dans un conteneur Docker :un guide étape par étape

  2. Comment installer WordPress avec Docker, un guide facile à suivre

  3. Comment exécuter un programme dans un conteneur Docker ?

  4. Comment exécuter MySQL dans un conteneur Docker

  5. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

Comment se connecter en SSH à un conteneur Docker et exécuter des commandes

Comment exécuter NGINX Inside Docker (pour une mise à l'échelle automatique facile)

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment créer des volumes Docker sous Windows en toute simplicité

Comment exécuter des conteneurs Docker