GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Volumes Docker NFS :comment créer et utiliser

Présentation

Les volumes Docker sont le mécanisme préféré pour configurer un stockage persistant pour vos conteneurs Docker. Les volumes sont des répertoires existants sur le système de fichiers hôte montés à l'intérieur d'un conteneur. Ils sont accessibles à la fois depuis le conteneur et depuis le système hôte.

Docker permet également aux utilisateurs de monter des répertoires partagés sur le système de partage de fichiers à distance NFS. Les volumes créés à cet effet utilisent le propre pilote NFS de Docker, éliminant ainsi la nécessité de monter le répertoire NFS sur le système hôte.

Ce didacticiel vous montrera comment créer et utiliser des volumes Docker NFS.

Prérequis

  • Serveur NFS installé et configuré sur la machine distante.
  • Docker installé sur la machine locale.
  • Un compte utilisateur avec des privilèges root/sudo.

Créer un volume Docker NFS

Le moyen le plus simple de créer et de gérer des volumes Docker consiste à utiliser le docker volume commande et ses sous-commandes.

La syntaxe de création d'un volume NFS Docker comprend deux options.

  1. Le --driver l'option définit le local pilote de volume, qui accepte des options similaires au mount commande sous Linux.
  2. Le --opt l'option est appelée plusieurs fois pour fournir plus de détails sur le volume.

Les détails incluent :

  • Le type de volume.
  • Le mode d'écriture.
  • L'adresse IP ou Web du serveur NFS distant.
  • Le chemin d'accès au répertoire partagé sur le serveur.
docker volume create --driver local \
  --opt type=nfs \
  --opt o=addr=[ip-address],rw \
  --opt device=:[path-to-directory] \
  [volume-name]

L'exemple ci-dessous illustre la création d'un volume NFS Docker nommé nfs-volume . Le volume contient le /mnt/nfsdir répertoire situé sur le serveur, avec le rw autorisation (lecture/écriture). L'adresse IP du serveur est 10.240.12.70 .

La commande exécutée avec succès affiche le nom du volume.

Listez les volumes Docker disponibles.

docker volume ls

La sortie répertorie le volume que vous avez créé.

Inspectez le volume avec inspect sous-commande.

docker volume inspect [volume-name]

La sortie affiche la configuration du volume.

Monter NFS dans un conteneur

Pour monter le volume NFS dans un conteneur, installez le nfs-common package sur le système hôte.

Commencez par mettre à jour les référentiels.

sudo apt update

Utilisez APT pour installer le nfs-common paquet.

sudo apt install nfs-common

Confirmez que vous souhaitez installer le package et attendez la fin de l'installation.

Utilisez la commande docker run pour démarrer le conteneur. Spécifiez le volume NFS et le point de montage dans le --mount rubrique.

docker run -d -it \
  --name [container-name] \
  --mount source=[volume-name],target=[mount-point]\
  [image-name]

L'exemple ci-dessous monte le volume NFS nommé nfs-volume au /mnt répertoire dans le conteneur.

Confirmez que le volume a été monté avec succès en utilisant docker inspect commande.

docker inspect [container-name]

Les Mounts section de la sortie contient les volumes montés dans le conteneur.

Entrez dans le shell bash de l'environnement de conteneur avec docker exec :

docker exec -it [container-name] /bin/bash

Lister le contenu du /mnt répertoire.

ls /mnt

La sortie montre les fichiers hébergés dans /mnt/nfsdir répertoire sur le serveur.

Si vous créez un fichier dans le conteneur Docker, il sera également accessible dans le répertoire d'origine sur le serveur. Pour tester, utilisez la commande touch pour créer un fichier vide dans le /mnt répertoire.

touch /mnt/docker1.txt

Sur le serveur, accédez au répertoire que vous avez partagé et répertoriez son contenu. Le fichier créé dans le conteneur Docker apparaît.

Monter des volumes NFS avec Docker Compose

Si vous utilisez Docker Compose pour gérer vos conteneurs, montez le volume NFS en le définissant dans le fichier YML.

Créez le fichier YML.

nano docker-compose.yml

Définissez le volume NFS dans les volumes rubrique.

version: "3.2"

services:
  [service-name]:
    image: [docker-image]
    ports:
      - "[port]:[port]"

    volumes:
      - type: volume
        source: [volume-name]
        target: /nfs
        volume:
          nocopy: true
volumes:
  [volume-name]:
    driver_opts:
      type: "nfs"
      o: "addr=[ip-address],nolock,soft,rw"
      device: ":[path-to-directory]"

Créez et démarrez le conteneur avec le docker-compose up commande.


Ubuntu
  1. Comment configurer et utiliser le registre Docker privé

  2. Volumes Docker :comment créer et démarrer

  3. Comment créer et utiliser des sous-domaines

  4. Comment installer et utiliser Docker dans Ubuntu 20.04

  5. Que sont les volumes Docker et comment les utilisez-vous ?

Comment installer et utiliser Docker Compose sur Debian 9

Comment installer et utiliser Docker-Compose sur CentOS 7

Comment créer et utiliser des faits personnalisés dans Ansible

Comment créer et utiliser un fichier d'échange sous Linux

Comment installer et utiliser Docker sur Ubuntu 22.04

Comment installer et utiliser Docker sur AlmaLinux 8