Je ne sais pas si ça vous arrive parfois, mais pour faire des tests, il m’arrive de vouloir récupérer certains dossiers de mon conteneur Docker en créant un volume dans le fichier « docker-compose.yml » par exemple afin de facilement les récupérer.
Oui, je sais qu’il existe la commande « docker exec » pour rentrer à l’intérieur du conteneur en ligne de commande, mais dans certains cas c’est pas toujours pratique je trouve.
Problème
Je ne connais pas la raison, mais il y a certains dossiers appartenant aux conteneurs à ne pas mettre dans des volumes. Je ne parle pas de l’aspect sécurité, simplement de l’aspect pratique. C’est à dire que si vous faites ceci avec le dossier « var » par exemple :
volumes:
- ./var:/var
Au lancement du conteneur, il va bien créer un dossier « var » sur votre serveur, à l’emplacement de votre « docker-compose.yml ». Par contre, à la place de mettre tous les fichiers du conteneurs vers le serveur, il va faire les choses dans l’autre sens. C’est à dire que vu que notre dossier « var » est nouvellement créer, il est vierge et va écraser le contenu du dossier « var » du conteneur ce qui par conséquent, l’empêche de fonctionner normalement.
Solution
Il est possible de récupérer le dossier du conteneur avec cette commande :