Volumes
Avec docker, on peut monter un répertoire de notre machine hôte dans le système de fichiers d'un Container.
En fait, par défaut, quand on Container est crée par Docker à partir d'une image, une volume, qui existe dans /var/lib/docker/volumes/
dans laquelle se trouve des fichiers provenant de l'Image de source.
Imaginons le cas suivant :
Sur mon ordinateur, j'ai développé une mini application en javascript :
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
rl.on('line', (line) => {
if ((line || '').trim().toLowerCase() === 'non') {
process.exit();
} else {
console.log(`Vous avez dit: "${line}".`);
console.log("Est-ce que vous avez autre chose à dire ?");
}
});
rl.once('close', () => {
process.exit();
});
console.log("Est-ce que vous avez quelque chose à dire ?");
Je peux monter l'emplacement de ce fichier en tant que volume dans le container, avec un paramètre -v
:
# -v [emplacement sur la machine hôte]:[emplacement dans le Container]
docker run -it -v /Users/kevin/Desktop/test:/app node:18 node /app/app.js
Ici on monte le dossier /Users/kevin/Desktop/test
sur la machine hôte à l'emplacement /app
dans le Container. Ensuite, on peut préciser que node se lance en lisant mon fichier javascript, qui explique la fin de la ligne : node /app/app.js
.
On peut également rentrer dans notre Container pour le voir :
docker run -it -v /Users/kevin/Desktop/test:/app node:18 bash
Ensuite, effectuez un ls /
... vous verrez le dossier /app
.
Dernière mise à jour