Maison > Opération et maintenance > Docker > Comment nettoyer les ressources occupées par Docker

Comment nettoyer les ressources occupées par Docker

王林
Libérer: 2021-01-29 11:37:55
avant
3192 Les gens l'ont consulté

Comment nettoyer les ressources occupées par Docker

Avant-propos :

Les amis qui utilisent souvent docker savent que docker occupe très rapidement les ressources. Le plus évident et le plus simple à détecter est l'occupation de l'espace disque. Alors, comment nettoyer les ressources système occupées par Docker ?

(Partage de vidéos d'apprentissage : Introduction à la programmation)

La méthode est la suivante :

Voir les ressources occupées par docker

Nettoyer les ressources Avant de devoir déterminer quelles ressources système occupent Docker. Cela nécessite une combinaison de différentes commandes à accomplir.
docker containers ls : Par défaut, seuls les conteneurs en cours d'exécution sont répertoriés. L'option -a répertorie tous les conteneurs, y compris ceux arrêtés.
docker image ls : répertorie les informations sur l'image. L'option -a répertorie les images intermédiaires (qui sont les calques dont dépendent les autres images).
docker volume ls : répertorie les volumes de données.
docker network ls : Liste des réseaux.
infos docker : affiche des informations au niveau du système, telles que le nombre de conteneurs et d'images, etc.

Après avoir vérifié les ressources utilisées par docker via ces commandes, je crois que vous avez décidé de nettoyer certaines ressources occupées par docker ! Commençons par les ressources qui ne sont pas utilisées.

Supprimer uniquement les ressources inutilisées

Docker fournit une commande Docker System Prune pratique pour supprimer les conteneurs arrêtés, les images pendantes, les réseaux non référencés par les conteneurs et pendant le cache du processus de construction :

$ docker system prune
Copier après la connexion

Comment nettoyer les ressources occupées par Docker

Pour des raisons de sécurité, cette commande ne supprimera pas les volumes de données qui ne sont référencés par aucun conteneur par défaut. Si vous devez supprimer ces volumes de données en même temps, vous devez le spécifier explicitement. le paramètre --volumns. Par exemple, vous souhaiterez peut-être exécuter la commande suivante :

$ docker system prune --all --force --volumes
Copier après la connexion

Non seulement le volume de données sera supprimé cette fois, mais il n'y aura même pas de processus de confirmation ! Notez que l'utilisation du paramètre --all supprimera toutes les images non référencées, pas seulement les images pendantes.
Il est nécessaire d'expliquer ici ce que sont les images pendantes. En fait, elles peuvent être simplement comprises comme des images qui ne sont référencées par aucune image. Par exemple, après avoir reconstruit l'image, les calques d'images précédemment créés qui ne sont plus référencés deviennent des images pendantes :

Comment nettoyer les ressources occupées par Docker

Une fois l'image locale mise à jour, une image similaire à dans la case rouge de l'image apparaîtra. Cela signifie que les anciennes images ne sont plus référencées et deviennent des images pendantes. Si vous utilisez le paramètre -a, vous trouverez également un autre type de miroir , dont les colonnes de référentiel et de balise apparaissent toutes deux comme  :

Comment nettoyer les ressources occupées par Docker

Ces les images sont appelées images intermédiaires (les couches dont dépendent les autres images).

Nous pouvons également exécuter prune sous différentes sous-commandes, afin que certains types de ressources soient supprimés :

docker container prune # 删除所有退出状态的容器
docker volume prune # 删除未被使用的数据卷
docker image prune # 删除 dangling 或所有未被使用的镜像
Copier après la connexion

Laisser docker revenir à l'état où il a été installé

Le « statut lors de l'installation » fait ici référence à l'utilisation des ressources plutôt qu'à la configuration associée de Docker. Il s'agit également d'un cas d'utilisation relativement courant. Par exemple, l'auteur doit restaurer automatiquement un environnement de production un certain jour dans un environnement Docker propre (en utilisant les données de sauvegarde de l'environnement de production) pour enquêter sur les bogues. Voyons ce qui doit être fait ?
Rappelez-vous la commande docker system prune --all --force --volumns que nous avons introduite plus tôt. Si tous les conteneurs du système ont été arrêtés avant d'exécuter cette commande, alors cette commande supprimera toutes les ressources ! Bon, voyons maintenant comment arrêter tous les conteneurs du système.

La commande docker containers stop peut arrêter un ou plusieurs conteneurs. Il nous suffit de lister tous les conteneurs en cours d'exécution dans le système. Puisque cela ne dérange pas Docker que nous arrêtions à nouveau un conteneur arrêté, soyons simples et grossiers et listons directement tous les conteneurs (y compris ceux arrêtés) !

$ docker container ls -a -q
Copier après la connexion

Comment nettoyer les ressources occupées par Docker

-a affiche tous les conteneurs, -q affiche uniquement les ID numériques des conteneurs.
Utilisez ensuite le résultat de l'exécution de cette commande comme paramètre de la commande d'arrêt du conteneur docker :

$ docker container stop $(docker container ls -a -q)
Copier après la connexion

La commande complète pour restaurer l'environnement docker est la suivante :

$ docker container stop $(docker container ls -a -q) && docker system prune --all --force --volumns
Copier après la connexion

Similaire au commande prune précédente, vous pouvez également supprimer complètement un certain type de ressource :
Supprimer le conteneur : docker containers rm $(docker containers ls -a -q)
Supprimer l'image : docker image rm $(docker image ls -a -q)
Supprimer le volume des données : docker volume rm $(docker volume ls -q)
Supprimer le réseau : docker network rm $(docker network ls -q)

Créer un alias shell

La commande ci-dessus peut être complétée. La tâche est fastidieuse, mais nous pouvons utiliser la fonction alias du shell pour simplifier l'exécution de ces commandes.

alias docker-clean-unused='docker system prune --all --force --volumes'alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune --all --force --volumes'
Copier après la connexion

把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!

Comment nettoyer les ressources occupées par Docker

执行一次清理任务:

Comment nettoyer les ressources occupées par Docker

总结

经常清理系统资源不仅能够让系统运行的更流畅,也利于我们把精力集中在相关的重点资源上面。所以建议大家能够使用相关的资源清理命令,让 docker 保持清爽和高效。

相关推荐: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!

Étiquettes associées:
source:cnblogs.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal