Gestion des données à l'aide de Bindmount de Docker et de tmpfs (mémorandum personnel)

Gestion des données à l'aide du montage de liaison

Contrairement au volume, il monte les fichiers et répertoires gérés par l'utilisateur hôte sur un conteneur. Là encore, le même fichier ou répertoire peut être monté dans plusieurs conteneurs. Puisqu'il s'agit d'une zone gérée par l'utilisateur, préparez à l'avance le fichier ou le répertoire source de montage, spécifiez le chemin et montez-le dans le conteneur. En plaçant le code source et le fichier de paramètres du projet sur l'hôte et en le montant, vous pouvez vérifier l'opération lors de l'édition du fichier côté hôte.

Utilisez -v pour lier le montage d'un répertoire sur le répertoire courant à un conteneur

-# "$(pwd)"Répertoire source sur le répertoire courant(n'existe pas)Est monté.
$ docker run -itd --name bind-test1 -v “$(pwd)”/source:/app nginx
$ ls
source

Si vous utilisez -v, un répertoire est automatiquement créé sur l'hôte si le répertoire n'existe pas.

Lors de l'utilisation de --mount

-# “$(pwd)”/Vous montez un répertoire qui n'existe pas dans source2.
$ docker run -itd —-name bind-test2 —mount type=bind,source=“$(pwd)”/source2,target=/app nginx

Spécifiez Type comme liaison. Exécutez sans un répertoire appelé source2 dans le répertoire courant. Dans ce cas, une erreur se produit. Dans le cas de --mount, une erreur se produira si le répertoire source n'existe pas. Cela vous évitera de monter accidentellement un répertoire vide. L'état du montage de la liaison peut être confirmé en affichant les informations détaillées du conteneur ainsi que le volume.

Vérification du montage du conteneur

-# bind-Confirmation détaillée du test1
$ docker inspect bind-test1 
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/docker/source",
                "Destination": "/app",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

Vous pouvez vérifier chacun par type, source et destination. Il est monté en lecture et en écriture par défaut. Notez que le montage de liaison masque le répertoire de destination du montage et les fichiers dans le répertoire de liaison. Si vous couvrez des fichiers et des répertoires importants avec bind, le conteneur peut ne pas fonctionner correctement. Vous pouvez également le monter en lecture seule avec bind mount.

Gestion des données à l'aide de tmpfs

Montez la zone de mémoire hôte sur le conteneur en tant que système de fichiers. Étant donné que les données sont stockées dans la mémoire, les données seront perdues si l'hôte docker est arrêté ou si le conteneur est arrêté. Le but est de l'utiliser comme un endroit pour stocker des données qui sont temporairement stockées au lieu de stocker des données permanentes, et de stocker des données qui peuvent être supprimées sans aucun problème. Argent comptant, mot de passe à usage unique, etc. Vous pouvez éventuellement limiter la taille de montage.

Lors de l'utilisation de --mount

-#Exemple
$ docker run -itd --name tmptest --mount type=tmpfs,destination=/app nginx

Lorsque vous utilisez tmpfs, spécifiez tmpfs comme type. Par défaut, la taille de montage est illimitée et si vous manquez de mémoire, le swap sera utilisé. La taille de montage peut être limitée en spécifiant des options.

-#Exemple
$ docker run -itd --name tmptest2 --mount type=tmpfs,destination=/app,tmpfs-size=500000000,tmpfs-mode=700 nginx

J'ai défini la taille de montage sur 500 Mo et le mode fichier sur 700.

Recommended Posts

Gestion des données à l'aide de Bindmount de Docker et de tmpfs (mémorandum personnel)
Gestion des données à l'aide du volume dans Docker (mémorandum personnel)
Construction d'un environnement d'analyse de données avec Docker (mémorandum personnel)
Construire un pipeline CICD à l'aide de Docker (mémorandum personnel)
Docker Machine (Mémorandum personnel)
Réseau Docker (mémorandum personnel)
Création d'un hôte Docker sur AWS à l'aide de Docker Machine (mémorandum personnel)
Lancer un conteneur docker sur EC2 (mémorandum personnel)
Manuel Docker Compact (2: Montage et persistance des données)
Mémorandum Docker
Créer un environnement Kaggle à l'aide de Docker officiel et de vscode
Construction de l'environnement de développement Django à l'aide de Docker-compose (mémorandum personnel)