Maison Opération et maintenance Docker Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ?

Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ?

Apr 19, 2023 pm 05:18 PM

Dans le processus d'utilisation de Docker, nous devons parfois partager des images et des conteneurs Docker entre différentes machines. Un moyen simple consiste à regrouper ces images et conteneurs dans des fichiers tar, puis à les transférer vers la machine cible via le réseau, puis à les décompresser et à les charger dans Docker. Cependant, même si nous réussissons à transférer ces images et conteneurs vers la machine cible, nous rencontrons souvent le problème suivant : impossible de charger l'image ou de démarrer le conteneur, ce qui indique "aucun espace disponible sur le périphérique", c'est-à-dire que l'espace disque de la partition est épuisé. insuffisant, en particulier lorsque ce problème est plus susceptible de se produire lors de l'utilisation de la superposition de pilotes de stockage2.

Que diable se passe-t-il ? J'ai déjà rencontré un problème similaire. Après quelques investigations et recherches, j'ai trouvé les raisons et les solutions :

  1. Comment fonctionne le pilote de stockage Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ?

Les pilotes de stockage de Docker incluent AUFS, DeviceMapper et OverlayFS Parmi eux, Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ? est le plus populaire. un. Il est basé sur le système de fichiers overlayFS, superposant plusieurs systèmes de fichiers en miroir pour former un point de montage commun, le faisant ressembler à un système de fichiers complet, comme le montre la figure ci-dessous :

Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ?

Comme le montre la figure, le la partie bleue est le système de fichiers de l'image de base, la partie verte est le système de fichiers de la couche conteneur et la partie rouge est le système de fichiers de la couche en lecture seule. La couche en lecture seule contient le système de fichiers commun à toutes les images. La couche conteneur est le système de fichiers de chaque conteneur. Elle crée une couche en lecture seule pour chaque conteneur et ajoute une couche inscriptible par-dessus afin que chaque conteneur puisse voir. Il s'agit d'un système de fichiers indépendant et n'interfère pas les uns avec les autres.

  1. La raison de l'espace de partition insuffisant

Lorsque nous créons un conteneur Docker, le pilote de stockage Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ? créera un sous-répertoire indépendant pour chaque conteneur dans le répertoire /var/lib/docker/Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ? pour stocker le système de fichiers du conteneur. Les données de fichier de ces sous-répertoires sont toutes stockées dans l'image de base, leur taille n'affecte donc pas les performances du pilote de stockage. Cependant, lorsque nous empaquetons l'image Docker et le conteneur d'une machine et les envoyons à une autre machine, lorsque le pilote de stockage Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ? décompresse les données, il les décompresse dans le répertoire /var/lib/docker, ce qui donne ce répertoire L'espace fichier occupé est trop grand et l'espace disque de la partition où se trouve /var/lib/docker est également devenu plus petit en conséquence. La figure suivante prend le répertoire /var/lib/docker comme exemple pour refléter ce problème :

Que se passe-t-il lorsque Docker ne parvient pas à partager le disque dur ?_space

.

Dans cette image, la taille du disque de partition /dev/vda1 est de 50 Go et la taille du disque de partition /var/lib/docker est de 21 Go. Cependant, comme il y a trop de conteneurs créés par docker, l'espace est insuffisant dans le /var. /lib/docker. Il ne reste que 30,72 Mo. Par conséquent, lorsque nous souhaitons démarrer le conteneur à partir d'une telle machine avec un espace disque limité, il y aura un problème d'échec de démarrage.

  1. Quelles sont les solutions associées ?
    En réponse aux problèmes ci-dessus, j'ai proposé quelques solutions :

3.1 Augmenter l'espace disque de la partition

C'est la méthode la plus courante pour les machines virtuelles, nous pouvons augmenter la taille de la partition du disque dans l'outil de gestion de machine virtuelle. redémarrez la machine virtuelle. Pour les serveurs cloud, la plupart des plates-formes cloud offrent la fonction d'extension de disque en ligne, mais le processus de fonctionnement est relativement compliqué et nécessite de la prudence pour éviter la perte de données.

3.2 Montez le répertoire /var/lib/docker sur un disque de données plus grand

Préparez un disque de plus de 21 Go (comme 20T) à l'avance et formatez-le au format ext4, montez-le dans le répertoire /data, puis / Le répertoire var/lib/docker est migré vers le disque de données pour le stockage. Les instructions de fonctionnement spécifiques sont les suivantes :

# 制作文件系统格式
mkfs.ext4 /dev/vdb

# 挂载
mount /dev/vdb /data

# 备份原/var/lib/docker目录下所有数据
cp -au /var/lib/docker/* /data/

# 卸载/var/lib/docker目录
umount /var/lib/docker

# 将/var/lib/docker目录迁移到新的数据盘中
echo '/dev/vdb /var/lib/docker ext4 defaults 0 0' >> /etc/fstab
mount -a
Copier après la connexion

3.3 Supprimer les images Docker et les conteneurs qui ne sont plus utilisés

Nous pouvons utiliser la commande suivante pour nettoyer l'espace disque :

# 清理所有停止的容器
docker container prune

# 清理所有未被标记的镜像
docker image prune -a

# 删除所有没有容器使用的镜像
docker image prune -a --filter "dangling=true"
Copier après la connexion

Résumé
Lors de l'utilisation de Docker, nous devons toujours payer Faites attention à savoir si l'espace utilisé par le pilote de stockage est suffisant, sinon cela pourrait entraîner un échec de démarrage. Pour ce faire, vous pouvez utiliser l'une des trois solutions ci-dessus. Je recommande personnellement la deuxième méthode, qui peut résoudre rapidement le problème sans détruire le système de fichiers d'origine. J'espère que mon partage pourra vous être utile, merci d'avoir lu.

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 de ce site Web
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

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 semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment déployer des applications à un cluster Swarm Docker? Comment déployer des applications à un cluster Swarm Docker? Mar 17, 2025 pm 04:20 PM

L'article détaille les applications de déploiement de Docker Swarm, couvrant la préparation, les étapes de déploiement et les mesures de sécurité pendant le processus.

Que sont les gods, les déploiements et les services de Kubernetes? Que sont les gods, les déploiements et les services de Kubernetes? Mar 17, 2025 pm 04:25 PM

L'article explique les pods, déploiements et services de Kubernetes, détaillant leurs rôles dans la gestion des applications conteneurisées. Il explique comment ces composants améliorent l'évolutivité, la stabilité et la communication dans les applications. (159 caractères)

Comment faire évoluer les applications à Kubernetes? Comment faire évoluer les applications à Kubernetes? Mar 17, 2025 pm 04:28 PM

L'article traite des applications de mise à l'échelle dans Kubernetes à l'aide de l'échelle manuelle, HPA, VPA et Autoscaler en cluster, et fournit les meilleures pratiques et outils pour surveiller et automatiser l'échelle.

Comment gérer les services dans Docker Swarm? Comment gérer les services dans Docker Swarm? Mar 17, 2025 pm 04:22 PM

L'article discute de la gestion des services dans Docker Swarm, en se concentrant sur la création, la mise à l'échelle, la surveillance et la mise à jour sans temps d'arrêt.

Comment mettre en œuvre des mises à jour de roulement dans Docker Swarm? Comment mettre en œuvre des mises à jour de roulement dans Docker Swarm? Mar 17, 2025 pm 04:23 PM

L'article examine la mise en œuvre des mises à jour de roulement dans Docker Swarm pour mettre à jour les services sans temps d'arrêt. Il couvre les services de mise à jour, la définition des paramètres de mise à jour, la surveillance des progrès et la garantie de mises à jour en douceur.

Comment gérer les déploiements à Kubernetes? Comment gérer les déploiements à Kubernetes? Mar 17, 2025 pm 04:27 PM

L'article examine la gestion des déploiements de Kubernetes, en se concentrant sur la création, les mises à jour, la mise à l'échelle, la surveillance et l'automatisation à l'aide de divers outils et meilleures pratiques.

Quelles sont les meilleures façons d'optimiser Docker pour les applications à faible latence? Quelles sont les meilleures façons d'optimiser Docker pour les applications à faible latence? Mar 14, 2025 pm 02:00 PM

L'article traite des stratégies pour optimiser Docker pour les applications à faible latence, en se concentrant sur la minimisation de la taille de l'image, en utilisant des images de base légères et en ajustant l'allocation des ressources et les paramètres du réseau.

Comment optimiser les images Docker pour la taille et les performances? Comment optimiser les images Docker pour la taille et les performances? Mar 14, 2025 pm 02:14 PM

L'article discute de l'optimisation des images Docker pour la taille et les performances à l'aide de versions multiples, d'images de base minimales et d'outils comme Docker Scout et Dive.

See all articles