Maison > base de données > tutoriel mysql > Comment initialiser de manière fiable un schéma de base de données MySQL dans un conteneur Docker ?

Comment initialiser de manière fiable un schéma de base de données MySQL dans un conteneur Docker ?

Barbara Streisand
Libérer: 2024-12-05 03:54:13
original
935 Les gens l'ont consulté

How to Reliably Initialize a MySQL Database Schema within a Docker Container?

Comment initialiser une base de données MySQL avec un schéma dans un conteneur Docker

L'initialisation d'une base de données MySQL avec un schéma dans un conteneur Docker est une tâche courante qui implique la création d'une base de données et y charger un schéma. Une approche pour ce faire consiste à utiliser un Dockerfile et la commande CMD pour exécuter un script qui initialise la base de données. Cependant, cette méthode peut rencontrer des difficultés, car la commande CMD ne peut exécuter qu'une seule commande et non une série de commandes.

Pour surmonter ce problème, une approche plus fiable consiste à utiliser la commande ADD pour ajouter la base de données. fichier de schéma dans le répertoire /docker-entrypoint-initdb.d. Lors de la création du conteneur, le script docker-entrypoint.sh exécute automatiquement tous les scripts SQL situés dans ce répertoire sur la base de données MySQL.

Dockerfile modifié :

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306
Copier après la connexion

Préparation du vidage du schéma :

Avant de commencer, assurez-vous d'avoir un vidage de votre MySQL schéma enregistré dans un fichier nommé schema.sql. Ceci peut être obtenu en utilisant la commande mysqldump :

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
Copier après la connexion

Démarrage de l'instance Docker MySQL :

Une fois le fichier Docker modifié et le vidage du schéma préparé, vous pouvez démarrer l'instance Docker MySQL à l'aide de Docker Compose :

docker-compose build
docker-compose up
Copier après la connexion

En suivant ces étapes, vous pouvez efficacement initialisez une base de données MySQL avec un schéma dans un conteneur Docker. Le répertoire docker-entrypoint-initdb.d garantit que le schéma est chargé lors de la création du conteneur, vous permettant d'avoir une base de données pré-remplie avec le schéma souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal