recherche
MaisonOpération et maintenanceDockerQuels sont les moyens de stockage Docker ?

Docker dispose de quatre méthodes de stockage : 1. "Stockage par défaut", les données sont enregistrées dans le conteneur en cours d'exécution, les données sont également supprimées 2. "Volume de données" ; " , montez directement n'importe quel répertoire ou fichier dans le système de fichiers hôte ; 4. "tmpfs mount".

Quels sont les moyens de stockage Docker ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

Plusieurs méthodes de stockage des conteneurs Docker

Le stockage des conteneurs peut être divisé en deux grandes catégories :

L'une est liée aux images, ce dont nous avons discuté dans "Bases de la technologie des conteneurs Docker - Fichier commun System OverlayFS" La fonctionnalité de copie sur écriture de la couche conteneur mentionnée dans l'article. Par défaut, tous les fichiers créés dans le conteneur sont stockés sur la couche conteneur inscriptible. Cette méthode de stockage direct des fichiers sur la couche conteneur rend les données difficiles à conserver et à partager en raison de la dépendance aux pilotes de stockage et de l'utilisation de l'écriture directe sur l'hôte. système de fichiers. Cette abstraction supplémentaire réduit les performances par rapport au volume de données.

L'autre est le stockage hôte, qui est utilisé en liant ou en suspendant le répertoire hôte dans le conteneur. Les données peuvent être conservées même après l'arrêt du conteneur. Présentez principalement ce dernier.

Plusieurs méthodes de montage du stockage

Nous dessinons ici le diagramme suivant en fonction des différents emplacements où les données sont stockées sur l'hôte Docker :

Quels sont les moyens de stockage Docker ?

Docker dispose de quatre méthodes de stockage : par défaut, volumes de données, montages liés. montage, montage tmpfs (disponible uniquement dans l'environnement Linux), dont les volumes et les montages de liaison implémentent les données de conteneur persistantes.

1. Stockage par défaut

Les données sont enregistrées dans le conteneur en cours d'exécution, une fois le conteneur supprimé, les données sont également supprimées

2.montages de liaison

Par rapport aux volumes, les montages de liaison ont des fonctions limitées. Lors de l'utilisation du montage lié, un fichier ou un répertoire sur l'hôte est monté dans le conteneur. Le fichier ou le répertoire est référencé par son chemin complet sur l'hôte. Il n'est pas nécessaire que le répertoire existe déjà sur l'hôte Docker. S'il n'existe pas, Docker le créera pour nous. Notez que seuls les répertoires peuvent être créés automatiquement.

Nous lions le montage d'un répertoire /nginx/html via l'option -v et jetons un œil dans le conteneur

docker run -dt -v /nginx/html:/usr/share/nginx/html --name nginx nginx

Affichez le champ Mounts du conteneur via docker inspect nginx

"Mounts": [
    {
        "Type": "bind",
        "Source": "/nginx/html",
        "Destination": "/usr/share/nginx/html",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
    }
],

Ensuite, nous créons un index.html sur l'hôte du docker et écrivez-le bonjour nginx, puis accédez à l'adresse IP du conteneur. Évidemment, notre montage a pris effet.

[root@localhost ~]# echo "hello nginx" >  /nginx/html/index.html
[root@localhost ~]# curl 172.17.0.4
hello nginx

Il y a un problème ici. Nous pouvons modifier les fichiers via l'hôte Docker pour rendre les fichiers du conteneur efficaces. La même chose est vraie en sens inverse. Le conteneur peut modifier, créer et supprimer le contenu du système de fichiers hôte. Pour résoudre ce problème, nous pouvons configurer les autorisations du répertoire de montage lors de la création du conteneur, telles que les autorisations en lecture seule suivantes :

docker run -dt -v /nginx/html:/usr/share/nginx/html:ro --name nginx nginx

Donc, lorsque nous utilisons bind mount, vous exploitez le système de fichiers hôte, vous devez savoir ce qui suit :

Quel contenu contient le répertoire que vous montez, afin de ne pas affecter les autres applications ?

Si votre conteneur doit avoir l'autorisation d'exploiter ces répertoires.

3.volumes data volumes

Les volumes de stockage de volumes sont créés et gérés par Docker Nous pouvons utiliser la commande docker volume create pour créer des volumes explicitement, ou créer des volumes lorsque le conteneur est créé.

[root@localhost ~]# docker volume create nginx_volume
nginx_volume
[root@localhost volumes]# docker inspect  nginx_volume
[
    {
        "CreatedAt": "2021-08-12T01:58:04-04:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/nginx_volume/_data",
        "Name": "nginx_volume",
        "Options": {},
        "Scope": "local"
    }
]

Vous pouvez voir que le point de montage se trouve sous le répertoire racine de docker /var/lib/docker/volumes

Utilisez docker volume rm/prune pour effacer un ou tous les volumes inutilisés. Vous pouvez utiliser la commande docker pour gérer. le volume. Comparaison Un avantage des supports de liaison.

[root@localhost ~]# docker volume ls
DRIVER    VOLUME NAME
local     owncloud-docker-server_files
local     owncloud-docker-server_mysql
local     owncloud-docker-server_redis
[root@localhost ~]# docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
owncloud-docker-server_files
owncloud-docker-server_mysql
owncloud-docker-server_redis

Total reclaimed space: 199.4MB

Si la source de montage du conteneur n'est pas spécifiée lors de la création du conteneur, docker créera automatiquement pour nous un volume anonyme, également situé dans le répertoire racine de docker.

[root@localhost volumes]# docker run -dt -v /usr/share/nginx/html --name nginx_with_volume nginx
d25bdfce9c7ac7bde5ae35067f6d9cf9f0cd2c9cbea6d1bbd7127b3949ef5ac6
[root@localhost volumes]# docker volume ls 
DRIVER    VOLUME NAME
local     d8e943f57d17a255f8a4ac3ecbd6471a735aa64cc7a606c52f61319a6c754980
local     nginx_volume
[root@localhost volumes]# ls /var/lib/docker/volumes/
backingFsBlockDev  d8e943f57d17a255f8a4ac3ecbd6471a735aa64cc7a606c52f61319a6c754980  metadata.db  nginx_volume

Après avoir créé un volume de montage, le stockage à ce moment est cohérent avec les montages de liaison. Cependant, lorsqu'il n'est pas garanti que l'hôte du docker ait une structure de répertoires ou de fichiers donnée, le volume peut nous aider à combiner la configuration du docker. hôte avec la séparation du runtime du conteneur. De cette façon, lorsque nous devons sauvegarder, restaurer ou migrer des données d'un hôte Docker à un autre, le volume est très pratique et peut être séparé des restrictions du chemin de l'hôte.

Lors de l'utilisation de montages et de volumes de liaison, nous devons faire attention aux principes de couverture de propagation suivants :

Quels sont les moyens de stockage Docker ?

Lors du montage d'un volume vide : le contenu du répertoire dans le conteneur sera propagé (copié) sur le volume.

Lors de la liaison d'un volume monté ou non vide : le contenu du répertoire dans le conteneur sera écrasé par le volume ou le répertoire hôte lié.

4.tmpfs mount

tmpfs mount n'est disponible que pour les hôtes Linux, lorsque nous utilisons tmpfs mount pour créer un conteneur, le conteneur peut créer des fichiers en dehors de la couche inscriptible du conteneur. Conservez les données en mémoire et lorsque le conteneur est arrêté, les données écrites seront également supprimées. Principalement utilisé pour le stockage temporaire de fichiers sensibles que vous ne souhaitez pas conserver dans la couche inscriptible de l'hôte ou du conteneur.

Montez un bloc mémoire via l'option --tmpfs.

docker run -dt --name busybox_tmpfs --tmpfs /etc/running busybox

Mettez les paramètres dans la méthode --mount pour spécifier la taille de stockage temporaire.

docker run -dt --name busybox_tmpfs2 --mount type=tmpfs,tmpfs-size=2048,destination=/etc/running busybox

Partage de données de stockage

在容器之间共享数据主要有两种方法,第一种比较简单,只需要将目录或者volume挂载到多个容器中即可。这里不做赘述,我们来看一下通过中间容器实现共享的方式。

我们创建一个中间容器,包含绑定挂载目录和一个卷。

docker create -v /share:/volume1 -v /volume2  --name volume_share  busybox

在我们需要共享的容器中通过选项--volumes-from拿过来用即可

docker run -d -t --volumes-from volume_share  --name container1  busybox

我们inspect检查一下Mounts字段,此时container1已经挂载到了一个bind目录和一个volume

"Mounts": [
    {
        "Type": "bind",
        "Source": "/share",
        "Destination": "/volume1",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
    },
    {
        "Type": "volume",
        "Name": "21605e49a0ba90a1b952a32c1b3f0d42735da8bfe718f0dc76c37e91f1e51c0e",
        "Source": "/var/lib/docker/volumes/21605e49a0ba90a1b952a32c1b3f0d42735da8bfe718f0dc76c37e91f1e51c0e/_data",
        "Destination": "/volume2",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
],

推荐学习:《docker视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Utilisation de Docker avec Linux: un guide completUtilisation de Docker avec Linux: un guide completApr 12, 2025 am 12:07 AM

L'utilisation de Docker sur Linux peut améliorer l'efficacité du développement et du déploiement. 1. Installez Docker: utilisez des scripts pour installer Docker sur Ubuntu. 2. Vérifiez l'installation: exécutez Sudodockerrunhello-world. 3. Utilisation de base: Créez un conteneur Nginx Dockerrunrun-namemy-nginx-p8080: 80-dnginx. 4. Utilisation avancée: créez une image personnalisée, construisez et exécutez à l'aide de dockerfile. 5. Optimisation et meilleures pratiques: suivez les meilleures pratiques pour écrire des dockerfiles à l'aide de builds en plusieurs étapes et de dockercosive.

Surveillance de Docker: rassemblement des mesures et suivi la santé des conteneursSurveillance de Docker: rassemblement des mesures et suivi la santé des conteneursApr 10, 2025 am 09:39 AM

Le cœur de la surveillance Docker est de collecter et d'analyser les données de fonctionnement des conteneurs, y compris principalement des indicateurs tels que l'utilisation du processeur, l'utilisation de la mémoire, le trafic réseau et les E / S de disque. En utilisant des outils tels que Prometheus, Grafana et Cadvisor, une surveillance complète et une optimisation des performances des conteneurs peuvent être obtenues.

Docker Swarm: Bâtiment de groupes de conteneurs évolutifs et résilientsDocker Swarm: Bâtiment de groupes de conteneurs évolutifs et résilientsApr 09, 2025 am 12:11 AM

Dockerswarm peut être utilisé pour construire des clusters de conteneurs évolutifs et hautement disponibles. 1) Initialisez le cluster d'essaims à l'aide de dockerswarminit. 2) Rejoignez le cluster Swarm pour utiliser Dockerswarmjoin - Takeking :. 3) Créez un service à l'aide de DockerServiceCreate-Namemy-Nginx - Replicas3Nginx. 4) Déployez des services complexes à l'aide de dockerstackdeploy-cdocker-compose.ymlmyapp.

Docker avec Kubernetes: Orchestration de conteneurs pour les applications d'entrepriseDocker avec Kubernetes: Orchestration de conteneurs pour les applications d'entrepriseApr 08, 2025 am 12:07 AM

Comment utiliser Docker et Kubernetes pour effectuer une orchestration de conteneur des applications d'entreprise? Implémentez-le via les étapes suivantes: Créez une image Docker et poussez-la sur DockerHub. Créez un déploiement et un service dans Kubernetes pour déployer l'application. Utilisez une entrée pour gérer l'accès externe. Appliquer l'optimisation des performances et les meilleures pratiques telles que la construction en plusieurs étapes et les contraintes de ressources.

Dépannage de Docker: diagnostic et résolution des problèmes communsDépannage de Docker: diagnostic et résolution des problèmes communsApr 07, 2025 am 12:15 AM

Les FAQ Docker peuvent être diagnostiqués et résolus via les étapes suivantes: 1. Afficher l'état et les journaux du conteneur, 2. Vérifiez la configuration du réseau, 3. Assurez-vous que le volume monte correctement. Grâce à ces méthodes, les problèmes dans Docker peuvent être rapidement localisés et fixes, améliorant la stabilité et les performances du système.

Questions d'entrevue Docker: Ace Your DevOps Engineering InterviewQuestions d'entrevue Docker: Ace Your DevOps Engineering InterviewApr 06, 2025 am 12:01 AM

Docker est une compétence incontournable pour les ingénieurs DevOps. 1.Docker est une plate-forme conteneurisée open source qui atteint l'isolement et la portabilité par les applications d'emballage et leurs dépendances dans les conteneurs. 2. Docker fonctionne avec les espaces de noms, les groupes de contrôle et les systèmes de fichiers fédérés. 3. L'utilisation de base comprend la création, l'exécution et la gestion des conteneurs. 4. L'utilisation avancée comprend l'utilisation de dockercosive pour gérer les applications multi-container. 5. Les erreurs courantes incluent une défaillance des conteneurs, des problèmes de cartographie des ports et des problèmes de persistance des données. Les compétences de débogage incluent la visualisation des journaux, la saisie des conteneurs et la visualisation d'informations détaillées. 6. L'optimisation des performances et les meilleures pratiques incluent l'optimisation de l'image, les contraintes de ressources, l'optimisation du réseau et les meilleures pratiques pour l'utilisation de dockerfile.

Decker Security Durcision: protéger vos conteneurs contre les vulnérabilitésDecker Security Durcision: protéger vos conteneurs contre les vulnérabilitésApr 05, 2025 am 12:08 AM

Les méthodes d'amélioration de la sécurité Docker incluent: 1. Utilisez le paramètre - Cap-Drop pour limiter les capacités Linux, 2. Créer des conteneurs en lecture seule, 3. Définissez les balises Selinux. Ces stratégies protègent les conteneurs en réduisant l'exposition à la vulnérabilité et en limitant les capacités de l'attaquant.

Volumes de docker: gérer les données persistantes dans les conteneursVolumes de docker: gérer les données persistantes dans les conteneursApr 04, 2025 am 12:19 AM

Dockervolumes garantit que les données restent sûres lorsque les conteneurs sont redémarrés, supprimés ou migrés. 1. Créer un volume: dockervolumecreatemydata. 2. Exécutez le conteneur et le volume de montage: dockerrun-it-vmydata: / app / dataubuntubash. 3. L'utilisation avancée comprend le partage de données et la sauvegarde.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.