Le collègue a réagi au fait que le système ne pouvait pas se connecter à l’environnement de test, a vérifié de manière décisive la surveillance, a constaté que le port de service était ouvert, s’est connecté au serveur pour vérifier l’utilisation du disque dur et a constaté que le répertoire monté sur un certain disque était plein, comme montré dans la figure ci-dessous :
Le disque est à 100 % le disque utilisé par l’application docker, et on soupçonne d’abord que l’impossibilité d’écrire des fichiers journals empêche le module de fournir des services au monde extérieur.
Cherchez les fichiers volumineux et enfin localisez-les dans le sous-répertoire /var/lib/docker/containers/Un certain fichier json.log prend 30G。
Nettoyage des journaux de conteneurs (traitement des symptômes)
Afin de permettre au récipient de servir normalement immédiatement. Solution temporaire : nettoyer rapidement ces fichiers, libérer de l’espace sur le disque dur, le script est le suivant :
Si le conteneur docker fonctionne, alors après avoir supprimé les logs avec rm -rf, vous constaterez que l’espace disque n’est pas libéré via df -h. La raison est que sur les systèmes Linux ou Unix, supprimer un fichier via rm-rf ou un gestionnaire de fichiers le délie de la structure de répertoires du système de fichiers. Si le fichier est ouvert (et qu’un processus est en cours), le processus pourra toujours lire le fichier et l’espace disque sera occupé en permanence. La bonne posture est cat /dev/null > *-json.log, et bien sûr vous pouvez aussi redémarrer Docker après l’avoir retiré via rm-rf.
Remarque:Créez un nouveau script dans le répertoire du disque libre, sinon le script ne peut pas être créé normalement。
Définir la taille du journal du conteneur Docker (cause principale)
Définissez la taille maximale logarithmique d’un service conteneur, et ajoutez un paramètre pour définir la taille logarithmique du conteneur lors du démarrage du conteneur, par exemple :
Taille maximale = 500 m, ce qui signifie que la limite supérieure de la taille de la taille de la limie d’un conteneur est de 500 M, max-file=3, ce qui signifie qu’un conteneur possède trois logs, à savoir id+.json, id+1.json et id+2.json.
Docker a migré vers un nouveau disque
Les données liées à Docker existent sur le disque système, le disque système ne fait que 50G, et le disque de données 100G, comment transférer les données existantes de Docker vers le disque de données ?
Pour docker installé avec la méthode système yum de CentOS, le répertoire d’installation par défaut devrait être : /var/lib/docker
Docker version < v17.05.0
Parce que dockerd peut spécifier le chemin de stockage image et conteneur via le graphe de paramètres, comme –graph=/var/lib/docker, il suffit de modifier le fichier de configuration pour spécifier les paramètres de démarrage.
Le fichier de configuration de Docker peut définir la plupart des paramètres de processus en arrière-plan, et l’emplacement de stockage dans chaque système d’exploitation est incohérent, dans Ubuntu : /etc/default/docker, et dans CentOS : /etc/sysconfig/docker.
Docker version >= v17.05.0
Parce que Docker a officiellement supprimé la fonction graphe dans cette version, si vous avez Docker version >= v17.05.0 installée sur votre machine, vous ne pouvez pas modifier le répertoire d’installation (stockage) par défaut de Docker en spécifiant le paramètre graphe dans le fichier de configuration /etc/default/docker.
Il existe d’autres moyens pour la nouvelle version de Docker d’atteindre notre objectif de modification du répertoire d’installation (stockage) : en modifiant (nouveau) /etc/docker/daemon.json pour spécifier la valeur du paramètre racine de données.
Configuration du répertoire des démons Docker :La connexion hyperlientérée est visible.
Préparation à la migration : arrêter toutes les applications conteneurs et arrêter les services docker (systemctl stop docker).
Créez un nouveau répertoire dans /home/software avec la commande suivante :
Migrez le dossier /var/lib/docker vers le dossier /home/software/docker (il est recommandé de le copier, puis de supprimer le fichier du dossier /var/lib/docker quand tout est en ordre), la commande est la suivante :
Lors de la copieAssurez-vous d’ajouter le paramètre -a, sinon certains conteneurs ne fonctionneront pas correctement!!!!!
Consultez toutes les connexions logicielles et points de fichiers dans le répertoire courant avec la commande suivante :
Modifiez le fichier /etc/docker/daemon.json avec la commande suivante :
Enregistrez, puis lancez le service docker avec la commande suivante :
Lance le conteneur, les tests tournent tous normalement, et enfin,Supprimez le dossier /var/lib/docker。
(Fin)
|