Bonjour,

J'ai une question dont je n'arrive pas à me convaincre d'une meilleure solution.

Dans docker compose, on peut utiliser soit un vrai volume :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
services:
   mariadb:
     image: mariadb
     volumes:
       - mariadb_data:/var/lib/mysql
     restart: always
....
volumes:
    mariadb_data:
Ce qui aura pour effet de créer un volume dans docker :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
root@aaa:/data/docker/test# docker volume ls | grep maria
local               test_mariadb_data
Il est également possible d'utiliser un path relatif.
Le fichier docker-compose sera donc comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
services:
   mariadb:
     image: mariadb
     volumes:
       - ./mariadb_data:/var/lib/mysql
     restart: always
....
Ce qui aura pour effet de mettre le "volume" au niveau du fichier docker-compose (avec des droits d'ailleurs un peu étrange) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
root@ddd:/data/docker/test# ls -l
total 16
-rw-r--r-- 1 root root  592 Jun  1 10:54 docker-compose.yml
drwxr-xr-x 5  999  999 4096 Jun  1 10:54 mariadb_data
Pour moi, la seconde méthode a l'avantage de simplifier grandement les backups.
J'arrête les containers, je tar.gz tout le dossier (qui contient le docker-compose), et c'est terminé.

Du coup, quel est la meilleure politique ?

PS : Je n'ai pas à partager des volumes entre containers