Différences entre versions de « Creer et utiliser un volume Docker NFS »

De Ikoula Wiki
Jump to navigation Jump to search
 
Ligne 14 : Ligne 14 :
  
  
Cet article décrit comment créer un '''volume Docker''' de type NFS, c'est à dire créer un volume qui va présenter les données d'un export NFS (par exemple un partage nfs depuis un NAS type Synology) puis utiliser celui-ci depuis des containers Docker.
+
Cet article décrit comment créer un '''volume Docker''' de type NFS, c'est à dire créer un volume qui va présenter les données d'un export NFS (par exemple un partage nfs depuis un NAS type Synology) puis utiliser celui-ci depuis des containers [https://www.ikoula.com/fr/cloud-public/oneclick/docker Docker].
  
 
Nous avons effectué cette procédure depuis une instance Cloud Ikoula One  et utiliser l'export NFS d'un NAS Synology mais cette procédure est tout à fait opérationnelle sur un serveur dédié et avec un export NFS standard.
 
Nous avons effectué cette procédure depuis une instance Cloud Ikoula One  et utiliser l'export NFS d'un NAS Synology mais cette procédure est tout à fait opérationnelle sur un serveur dédié et avec un export NFS standard.

Version actuelle datée du 10 septembre 2021 à 16:06

en:Create and use an NFS Docker volume fr:Creer et utiliser un volume Docker NFS



Cet article décrit comment créer un volume Docker de type NFS, c'est à dire créer un volume qui va présenter les données d'un export NFS (par exemple un partage nfs depuis un NAS type Synology) puis utiliser celui-ci depuis des containers Docker.

Nous avons effectué cette procédure depuis une instance Cloud Ikoula One et utiliser l'export NFS d'un NAS Synology mais cette procédure est tout à fait opérationnelle sur un serveur dédié et avec un export NFS standard.

Nous partirons du principe que vous avez déjà accès à un système avec Docker installé et d'un export NFS existant.

Création du volume Docker de type NFS :

Voici la commande permettant de créer un volume Docker de type NFS en accès lecture/écriture depuis un export NFS existant :

[root@ikoula ~]# docker volume create --driver local --opt type=nfs --opt o=addr=<adresse ip serveur nfs>,rw --opt device=:<chemin export nfs> <nom du volume NFS Docker>

Note: vous pouvez évidemment nommer votre Docker volume comme vous le souhaitez.

ce qui donne dans notre cas (notre volume est créé à partir d'un export NFS "/volume1/datas" d'un NAS synology) :

[root@CentOS7 ~]# docker volume create --driver local --opt type=nfs --opt o=addr=213.246.x.x,rw --opt device=:/volume1/datas synodatas 
synodatas

Notre volume NFS est maintenant présent dans la liste des Docker volume :

[root@CentOS7 ~]# docker volume ls
DRIVER              VOLUME NAME
local               synodatas

Nous pouvons également inspecter notre volume :

[root@CentOS7 ~]# docker volume inspect synodatas
[
    {
        "CreatedAt": "2018-11-26T11:00:27+01:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/synodatas/_data",
        "Name": "synodatas",
        "Options": {
            "device": ":/volume1/datas",
            "o": "addr=213.246.x.x,rw",
            "type": "nfs"
        },
        "Scope": "local"
    }
]

Utilisation du volume Docker de type NFS sur des containers Docker :

Il faut préalablement avoir installé le client NFS sur l'hôte.

Dans notre cas, l'hôte (une instance CIO) est en "Centos7", il suffit d'installer le paquet "nfs-utils" :

[root@CentOS7 ~]# yum install nfs-utils

Nous pouvons maintenant utiliser notre volume Docker de type NFS créé précédemment sur un ou plusieurs container via la commande suivante :

[root@CentOS7 ~]# docker run -d  -it --name <Nom container> --mount source=<Nom du volume NFS>,target=<point de montage du contenu du volume NFS dans le container> <Nom image docker>

Ce qui donne dans notre cas (on crée un container nommé "deb9" à partir de l'image debian dans lequel on monte le contenu de notre volume NFS "synodatas" sur le point de montage /mnt) :

[root@CentOS7 ~]# docker run -d  -it --name deb9 --mount source=synodatas,target=/mnt debian
ce6328ab1a44c8c7a07e2fd9c4022d33d394828376d3cb10171bbdeec745371a

La section "mount" de notre container ("docker inspect deb9) :

        "Mounts": [
            {
                "Type": "volume",
                "Name": "synodatas",
                "Source": "/var/lib/docker/volumes/synodatas/_data",
                "Destination": "/mnt",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ],

Si on se connecte à notre container deb9, on peut lister les fichiers de notre export/volume docker NFS depuis le point de montage :

[root@CentOS7 ~]# docker exec -it deb9 /bin/bash
root@ce6328ab1a44:/# ls -1 /mnt/
file_test1
file_test2
file_test3
file_test4
file_test5

Comme nous avons crée notre volume Docker en lecture/écriture, nous pouvons également créer ou modifier des fichiers sur ce dernier depuis notre container :

root@ce6328ab1a44:/# touch /mnt/testfromdocker
root@ce6328ab1a44:/#

Vous l'aurez compris cette procédure vous permet d'utiliser du stockage persistant au sein d'un ou plusieurs containers Docker (simultanément ou non) via un volume Docker de type NFS en utilisant par exemple un export NFS de votre NAS.


Pour aller plus loin :

https://docs.docker.com/storage/volumes/