Montage volume Docker
Résolu/Fermé- Montage volume Docker
- Montage video windows - Guide
- Notice de montage pdf - Guide
- Mélangeur de volume - Guide
- Montage photo animaux humain gratuit - Télécharger - Trucages & Effets
- Comment réduire le volume d'un fichier pdf - Guide
2 réponses
25 sept. 2023 à 21:51
Bonjour,
Les images Docker sont généralement conçues pour être autant réutilisables que possible, il serait préférable de monter les fichiers certificat/clé et non de les inclure dans l'image.
je n'arrive pas à mapper le chemin /var/www/html de mon docker vers le /opt/apache
C'est plutôt l'inverse, on mappe un dossier hôte vers le container. Peut-être que cette confusion est liée au problème rencontré...
Quelques précisions seront nécessaires pour pouvoir t'aider :
- Sur l'hôte, quel est le contenu de /opt/apache ?
ls -l /opt/apache
- Quelle commande utilises-tu pour lancer le Docker ?
La commande devrait contenir "-v /opt/apache:/var/www/html" - Si tu listes le contenu depuis le container ? Avec quelque-chose comme :
docker exec -it NomDuContainer ls -l /var/www/html
Bonjour, merci pour ta réponse. En effet je me suis trompe dans mon explication, c'est l'inverse que je voulais dire. Pour répondre à ta question, je lance la commande suivante :
sudo docker run --name conteneur -v /opt/owncloud:/var/www/html -d -p 80:80 contenu
"contenu" est le nom que j'ai donné à mon image.
Ensuite Sur l'hôte, quel est le contenu de /opt/apache?
Le dossier sur l'hôte est vide
Modifié le 26 sept. 2023 à 14:42
Bonjour,
Si le dossier /opt/owncloud sur l'hôte est vide avant le démarrage du container, alors son équivalent dans le container (/var/www/html) sera vide aussi.
Avant de démarrer le container, tu dois placer les fichiers owncloud dans /opt/owncloud
26 sept. 2023 à 19:44
C'est ca que je ne comprend pas. Dans l'exemple du docker mariadb je le monte comme suit:
docker run --name some-mariadb -v /opt/mariadb:/var/lib/mysql -h dock-mariadb -e MARIADB_ROOT_PASSWORD=root -p3306:3306 -d mariadb
et le dossier /opt/mariadb se rempli avec le contenu du docker s'il est vide et s'il ne l'est pas, le conteneur reprend le contenu de /opt/mariadb et je retrouve l'intégralité de mes données stockes en Database. Du coup je me pose des questions notamment quelle logique m'échappe et/ou qu'est-ce que je n'ai pas fait correctement pour que mon image agisse de la sorte. Et merci à toi du temps que tu m'accorde.
27 sept. 2023 à 22:19
Bonjour,
C'est tout simplement parce que l'image MariaDB est conçue pour générer le contenu initial au premier démarrage (et non lors du build) du container si le dossier apparaît vide.
Ton image pour Apache n'a aucune raison de faire cela. En fait, au moment du build, il est possible que l'installation de Apache installe aussi des fichiers dans le dossier /var/www/html de l'image
Néanmoins, au moment où tu démarres le container, tu fais un bind "-v /opt/apache:/var/www/html" alors que le dossier /opt/apache est vide, il en résulte que /var/www/html est vide également (donc au niveau du container, même si l'image de base contient quelque-chose).
Le contenu du dossier hôte /opt/apache (vide) prend le "dessus" sur le contenu /var/www/html (peut-être rempli) du container.
C'est expliqué dans la documentation :
If you bind-mount a directory into a non-empty directory on the container, the directory's existing contents are obscured by the bind mount.
Voir https://docs.docker.com/storage/bind-mounts/#mount-into-a-non-empty-directory-on-the-container
Cette phrase parle du côté où le dossier hôte contient quelque-chose, et le dossier container aussi.
Mais techniquement, la même chose se passe si le dossier hôte est vide et si le dossier container est contient quelque-chose ou pas.
De mémoire, l'image officielle de Nextcloud fonctionne comme celle de MariaDB : au premier démarrage, tu montes un dossier hôte vide dans le container à l'emplacement imposé, et un script (dans l'image) détecte que si ce dossier est vide, alors il faut télécharger Nextcloud et l'extraire dans ce dossier. Et puisque ce dossier est un mount avec le dossier hôte, les fichiers apparaissent alors sur le dossier hôte (en dehors du container).
28 sept. 2023 à 09:45
Bonjour, Ah d'accord comprend bien mieux la logique. Merci à toi pour tes lumières et pour le temps que tu m'as accordé.