Principes de base de Docker: utilisez des montages tmpfs pour gérer les données d'application

Les volumes (volumes) et les montages de liaison (montages de liaison) vous permettent de partager des fichiers entre l'hôte et le conteneur, de sorte que même après que le conteneur puisse également arrêter le stockage permanent des données.

Si vous exécutez Docker sous Linux, il existe une troisième option: tmpfsmount. Lorsque vous créez avec tmpfsle montage du conteneur, le conteneur peut créer une couche inscriptible de fichiers en dehors du conteneur.

Contrairement aux volumes et aux montages de liaison, les tmpfsmontages sont temporaires et ne restent que dans la mémoire de l'hôte. Lorsque le conteneur s'arrête, le tmpfsmontage est supprimé et les fichiers qui y sont écrits ne sont pas conservés.

docker-types-de-montages-tmpfs

Ceci est utile pour stocker temporairement des fichiers sensibles que vous ne souhaitez pas stocker de manière persistante dans la couche inscriptible de l'hôte ou du conteneur.

Limitations du montage tmpfs

  • Contrairement aux montages de volume et de liaison, ne peut pas être partagé entre les conteneurs tmpfsmontés.
  • Cette fonctionnalité n'est disponible que lorsque Docker s'exécute sous Linux.

Sélectionnez --tmpfsou --mountmarquez

Au départ, les --tmpfsbalises étaient utilisées pour les conteneurs autonomes et les --mountbalises étaient utilisées pour les services de cluster. Mais à partir de Docker 17.06, vous pouvez également être --mountutilisé avec un conteneur séparé. En général, l' --mountexpression de la marque est plus claire et plus détaillée. La plus grande différence est que la --tmpfsbalise ne prend en charge aucune option configurable.

  • --tmpfs: Set the tmpfsMount ne vous permet pas de spécifier des options de configuration et ne peut être utilisé qu'avec un conteneur séparé.
  • --mount: Une pluralité de clés - chaque paire de valeurs de clé ,, - paire de valeurs par l'un <key>=<value>des tuples. --mountLa syntaxe la --tmpfsplus verbeuse:
    • Le type de montage ( type), qui peut être soit bind, volumesoit tmpfs. Ce sujet est discuté tmpfs, donc le type ( type) est toujours tmpfs.
    • Target ( destination), le tmpfschemin du navire est fourni pour monter en tant que valeur. Il peut être utilisé destination, dstou targetspécifier.
    • tmpfs-sizeEt les tmpfs-modeoptions. Voir ci-dessous une des options tmpfs spécifiées .

L'exemple suivant montre aussi simultanément que possible --mountet les --tmpfsdeux syntaxes, et le premier show --mount.

--tmpfsEt --mountla différence entre le comportement

  • --tmpfs La balise n'autorise pas la spécification d'options configurables.
  • --tmpfsLa balise ne peut pas être utilisée pour les services de cluster. Pour les services de cluster, vous devez utiliser --mount.

Monter à l'aide de tmpfs dans le conteneur

Pour être utilisé dans le tmpfsmontage du conteneur , utilisez la --tmpfsmarque, ou avec la marque d' utilisation type=tmpfset d' destinationoptions --mount. Non utilisé pour tmpfsle montage source ( source).

L'exemple suivant de conteneur Nginx /apppour créer un tmpfsmontage. Le premier exemple utilise une --mountmarque, en utilisant un deuxième --tmpfsmarqueur.

--mount

$ docker run -d \
  -it \
  --name tmptest \
  --mount type=tmpfs,destination=/app \
  nginx:latest

--tmpfs

$ docker run -d \
  -it \
  --name tmptest \
  --tmpfs /app \
  nginx:latest

En exécutant docker container inspect tmptestpour vérifier que le montage est tmpfsmonté pour afficher la Mountssection:

"Tmpfs": {
    
    
    "/app": ""
},

Supprimer le conteneur:

$ docker container stop tmptest

$ docker container rm tmptest

Spécifier les options tmpfs

tmpfsLe montage permet deux options de configuration, dont aucune n'est requise. Si vous devez spécifier ces options, vous devez utiliser la --mountmarque, car la --tmpfsmarque n'est pas prise en charge.

Options la description
tmpfs-size La taille du montage tmpfs (en octets). Il n'y a pas de limite par défaut.
tmpfs-mode Le mode de fichier octal de tmpfs. Par exemple, 700ou 0770. Par défaut 1777ou accessible en écriture.

L'exemple suivant tmpfs-modeest fourni à 1770, et par conséquent dans le conteneur, il n'est pas globalement lisible.

docker run -d \
  -it \
  --name tmptest \
  --mount type=tmpfs,destination=/app,tmpfs-mode=1770 \
  nginx:latest

Auteur:
Traducteur du site officiel de Docker : Technical Zemin
Editeur: Technical Verses
links: English text

Je suppose que tu aimes

Origine blog.csdn.net/weixin_47498376/article/details/107754163
conseillé
Classement