comment monter ou

Comment monter ou lier symboliquement un seul fichier dans un conteneur Docker – CloudSavvy IT

Le volume Docker et les montages de liaison sont utilisés pour lier les répertoires du système d’exploitation hôte à des emplacements dans le système de fichiers du conteneur. Bien qu’ils soient couramment utilisés pour monter des répertoires entiers, vous pouvez également les utiliser pour créer un lien symbolique avec des fichiers individuels.

Lien symbolique vers Docker depuis l’hôte

Le montage de répertoires entiers fonctionne bien si vous écrasez toute une liste de fichiers de configuration, mais si vous souhaitez uniquement en cibler un, vous devrez utiliser un montage à fichier unique. Ceci est également utile si vous souhaitez avoir plusieurs montages dans le même répertoire, mais à partir d’emplacements différents. Cela fonctionne un peu comme un lien symbolique Linux ordinaire, sauf qu’il est géré via Docker et traverse le pont entre l’hôte et le système de fichiers du conteneur.

Les montages de volume Docker normaux nécessitent un montage sur une cible annuaire, au sein duquel le volume sera lié.

docker volume create nginx-config

docker run -d 
--name devtest 
--mount source=nginx-config,target=/etc/nginx 
nginx:latest

Cependant, avec les montages de liaison, la source peut être un répertoire ou fichier sur l’hôte. Les montages de volume ne prennent pas en charge cela, et bien que vous souhaitiez généralement les utiliser, vous devez utiliser les montages de liaison de niveau inférieur si vous souhaitez monter des fichiers uniques.

Pour ce faire, vous pouvez exécuter le conteneur avec le drapeau --mount type=bind , qui prennent en charge les fichiers individuels si vous spécifiez le chemin :

docker run -it 
--mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg 
nginx sh

Alternativement, si vous vouliez vraiment utiliser des volumes Docker, vous pouvez créer un volume avec uniquement le fichier que vous prévoyez de monter, le monter dans un répertoire temporaire dans le conteneur, puis créer un lien symbolique réel à l’intérieur du conteneur (dans le script de build Docker ) qui serait lié au répertoire temporaire avec le fichier. C’est probablement une solution pire qu’un montage de liaison dans l’ensemble, mais cela vous permet de stocker les données via l’API de volume Docker.

Laisser un commentaire