J'ai un conteneur Docker qui exécute du code et crée des rapports HTML. Je souhaite que ces rapports soient publiés dans un répertoire spécifique de la machine hôte, c'est-à-dire à l'adresse /usr/share/nginx/reports
Pour ce faire, j'ai monté ce répertoire d'hôte en tant que volume de données, c'est-à-dire docker run -v /usr/share/nginx/reports --name my-container com.containers/my-container
Cependant, lorsque je ssh sur la machine hôte et que je vérifie le contenu du répertoire /usr/share/nginx/reports
, Je ne vois aucune des données du rapport là-bas.
Est-ce que je fais quelque chose de mal?
La machine hôte est un serveur Ubuntu et le conteneur Docker est également Ubuntu. Aucune bizarrerie boot2docker ne se passe ici.
Depuis " Gestion des données dans les conteneurs ", le montage d'un dossier hôte sur un conteneur serait:
docker run -v /Users/<path>:/<container path>
(voir " tiliser le volume ")
Utilisant seulement -v /usr/share/nginx/reports
déclarerait le chemin du conteneur interne /usr/share/nginx/reports
en tant que volume, mais n’aurait rien à voir avec le dossier Host.
C'est l'un des types de supports disponibles:
J'utilise la boîte à outils Docker sur Windows. Je travaille sur une application de démarrage de printemps à l'aide de Docker. Mon application écrit les journaux dans
users/path/service.log
Ainsi, lorsque j'ai lancé mon application à partir du terminal hôte, le fichier journal a été mis à jour avec succès. Mais la même chose quand je l'ai fait sur docker, aucun fichier n'a été créé ni mis à jour.
Donc, je modifié mon fichier journal emplacement pour correspondre aux répertoires du conteneur
var/log/service.log
J'ai redémarré mon conteneur et mon fichier a été mis à jour à nouveau.
Vous pouvez choisir n’importe quel emplacement, à condition qu’il corresponde au répertoire du conteneur. Il suffit de descendre dans le conteneur et de voir ce qui vous convient.
La prochaine étape consiste à copier les fichiers journaux du conteneur vers l'hôte.
Donc, afin de copier ces journaux sur votre hôte. Vous pouvez utiliser l'une des deux manières que je connais-
1- utiliser Volumes dans le menu fixe
2- utilisez la commande suivante de Docker pour copier le fichier du conteneur de docker vers l'hôte:
docker cp <containerId>:/file/path/within/container /Host/path/target