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
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
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 :
Une fois l'image locale mise à jour, une image similaire à
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 或所有未被使用的镜像
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
-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)
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
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'
把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!
执行一次清理任务:
总结
经常清理系统资源不仅能够让系统运行的更流畅,也利于我们把精力集中在相关的重点资源上面。所以建议大家能够使用相关的资源清理命令,让 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!