Introduction
En général, les conteneurs Docker ne fonctionnent que pendant une certaine période – le temps nécessaire à l'exécution de la commande. Les données disponibles à l'intérieur du conteneur ne sont accessibles que depuis l'intérieur du conteneur pendant sa durée d'exécution.
Les volumes Docker peuvent être utilisés pour accéder facilement aux fichiers et les stocker pendant une période plus longue. Par exemple, si vous disposez d'un serveur web Nginx et que vous souhaitez stocker les journaux pour des audits, vous pouvez utiliser un volume Docker pour stocker les journaux du conteneur sur votre machine hôte.
Dans ce tutoriel, vous apprendrez à partager des données entre l'intérieur du conteneur Docker et la machine hôte.
Prérequis
Pour ce tutoriel, vous aurez besoin des prérequis suivants :
- Serveur Ubuntu 18.04 : Vous pouvez facilement créer un nouveau serveur CloudSigma avec l'image Ubuntu 18.04, en suivant notre tutoriel pratique.
- Docker – Vous pouvez installer Docker en utilisant notre tutoriel sur la configuration de Docker sur Ubuntu et vous familiariser avec celui-ci.
Étape 1 – Monter un volume par liaison (Bind Mount)
Vous pouvez créer un répertoire nommé logs dans le répertoire personnel de votre utilisateur actuel et le monter par liaison sur /var/log/nginx dans le conteneur Nginx à l'aide de la commande suivante :
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Voici des informations plus détaillées sur cette commande :
--name=nginxdonne un nom au conteneur pour s'y référer facilement.-dl'argument détache le processus et l'exécute en arrière-plan.-v hostPath:containerPathmappe le chemin de l'hôte et le chemin du conteneur pour lier le montage.-p hostPort:containerPortl'argument mappe le port du conteneur sur le port de l'hôte.nginxà la fin de la ligne est le nom de l'image qui doit être utilisée pour démarrer le conteneur.
Étape 2 – Accéder aux données sur l'hôte
Maintenant, vous avez un conteneur Nginx en cours d'exécution sur votre serveur, et le port 5000 de votre serveur est mappé sur le port 80 de Nginx. Vous pouvez ouvrir le port dans le navigateur web avec l'URL suivante :
|
1 |
http://serverIP:5000/ |

Dans le répertoire ~/logs, vous verrez les fichiers access.log et error.log. Vous pouvez voir les journaux en utilisant la commande cat :
|
1 |
cat access.log |
|
1 2 3 |
Sortie: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
Vous pouvez également vérifier le répertoire des journaux ~/logs sur votre machine hôte et y trouver le fichier de journaux de Nginx. De plus, si vous apportez des modifications dans le dossier logs, elles se refléteront également dans le dossier /var/log/nginx du conteneur.
Conclusion
Dans ce tutoriel, vous avez appris à partager des données entre l'intérieur du conteneur Docker et la machine hôte. C'est essentiel dans les environnements de développement où l'analyse des journaux est indispensable pour le débogage.
Pour plus de ressources sur Docker sur notre blog, vous pouvez consulter les éléments suivants :
- Comment installer & utiliser Docker sur Ubuntu dans le cloud public
- Installation et configuration de Docker sur CentOS 7
- Nettoyer les ressources Docker – Images, conteneurs et volumes
- Comment exécuter Docker sur CloudSigma (avec CloudInit) Mis à jour
Bonne informatique !
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.