GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment monter ou lier symboliquement un seul fichier dans un conteneur Docker

Les montages de volume et de liaison Docker sont utilisés pour lier des répertoires sur le 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 des liens symboliques vers 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 voulez juste en cibler un, vous devrez utiliser un montage de 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 normal, 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 que vous montiez dans un répertoire cible , dans lequel 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 liés, la source peut être un répertoire ou un fichier sur l'hôte. Les montages de volume ne le prennent pas en charge, et même si vous souhaitez 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 construction Docker ) qui créerait un lien vers le répertoire temporaire avec le fichier. C'est probablement une solution pire qu'un montage lié dans l'ensemble, mais cela vous permet de stocker les données via l'API de volume Docker.


Docker
  1. Extraire le fichier de l'image Docker ?

  2. Comment exécuter MySQL dans un conteneur Docker

  3. Comment monter un répertoire hôte dans un conteneur Docker

  4. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

  5. Comment attribuer une adresse IP statique à un conteneur Docker

Comment créer un lien symbolique vers un fichier sous Linux

Qu'est-ce que Docker ? Comment ça marche?

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment configurer un conteneur Apache Docker

Comment exécuter des conteneurs Docker