Transférer des fichiers du serveur vers le conteneur Docker et vice verca

Contexte

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 :

docker cp my_container:/app/myfolder /home/user/myfolder

Ce n’est qu’à titre d’exemple, mais supposons que je veux récupérer le dossier « /lib/jellyfin », je peux faire ceci :

docker cp jellyfin:/lib/jellyfin .

Je ne vois pas encore l’intérêt, mais c’est possible de faire le contraire, c’est à dire inclure un dossier/fichier du serveur vers un conteneur :

docker cp /home/user/myfolder my_container:/app/myfolder

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *