https://mariadb.com/wp-content/uploads/2018/10/mariadb-social-share.jpg

La base de donnée chez les docks

docker 30 janv. 2023

Aujourd'hui, nous allons voir l'installation d'un conteneur de base de données qui vous permettra d'y connecter vos différentes applications/services. Cela vous permettra de centraliser vos données et de ne pas avoir à créer un conteneur pour chaque application/service qui en a besoin.

Il existe plusieurs gestionnaires de bases de données, dont Oracle MySQL, MariaDB et PostgreSQL, pour n'en citer que quelques-uns.

Nous utiliserons ici MariaDB (un fork de MySQL) qui est compatible avec la plupart des applications.

Nous allons créer deux fichiers, un fichier nommé .env qui contiendra les variables pour les noms et mot de passe et notre fichier docker-compose.yml.

MYSQL_ROOT_PASSWORD="passwordroot"
MYSQL_DATABASE="database_name"
MYSQL_USER="username"
MYSQL_PASSWORD="passworduser"
File: .env
version: "3.7"
   services:
      mariadb:
        image:lscr.io/linuxserver/mariadb
		container_name: MariaDB
        env_file:
          - .env
        environment:
          - PUID=1002
          - PGID=1002
          - TZ=Europe/Paris
        volumes:
          - ./data:/config
        ports:
          - 3330666:3306
        restart: unless-stopped
File: docker-compose.yml

J’ai mis le port de sorti sur 3330666 pour éviter toute confusion avec d’autre conteneur docker qui écoutera sur le port 3306. À vous de mettre le port que vous souhaitez.

Après la configuration des 2 fichiers, il ne nous reste plus qu’à lancer notre conteneur docker.

docker-compose up -d

Dès que les actions se sont terminées (push de l’image / démarrage du conteneur), nous pouvons vérifier si tout est bien lancé et configuré.

On vérifie les logs dans un premier temps avec la commande suivante :

docker logs MariaDB

Qui doit vous retourner ceci a la fin.

Database Setup Completed
[custom-init] No custom files found, skipping...
230109 13:39:37 mysqld_safe Logging to '/config/databases/9488bc7ebd1e.err'.
230109 13:39:37 mysqld_safe Starting mariadbd daemon with databases from /config/databases
[ls.io-init] done.

Nous vérifions ensuite si les paramètres (user/mot de passe/base) ont bien été pris en compte avec les commandes suivantes :

On se connecte au shell ne notre conteneur :

docker exec -it MariaDB bash

Puis, on teste la connexion aux user et à la base de donnée :

mysql -uroot -p 
mysql -uuser -p

Voici le retour que vous devriez avoir si la connexion est bonne.

Welcome to the MariaDB monitor.  Commands end with ; or \\g.
Your MariaDB connection id is 7
Server version: 10.6.10-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

Pour le test de connexion a la base de donnée :

connect $database ;
Connection id:    8
Current database: $database

MariaDB [$database]> exit
Bye

Si vous n’avez eu aucun message d’erreur / Warning alors tout est ok.

Pour pouvoir utiliser la base de données avec vos services et applications, il ne restera plus qu'à renseigner login/password/database et ip:port dans les fichiers .env.

Mots clés

test