4个实用小技巧,来给你的Docker 进行一次“大扫除”吧![转载]

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如果您倾向于在工作中使用Docker,那么就不得不考虑那些遗留下来的容器和悬挂卷,小编在这里将介绍4个小技巧,来给您的Docker 做一次全面的“大扫除”吧!

写在前面

如果您倾向于在工作中使用Docker,那么就不得不考虑那些遗留下来的容器和悬挂卷,小编在这里将介绍4个小技巧,来给您的Docker 做一次全面的“大扫除”吧!

每隔一段时间您都需要清理一下自己的Docker,可能是通过简单删除闲置容器或卷的方式,亦或是其它方式。但无论使用哪种方式,您都应该了解清理Docker 所需的命令。而当您在虚拟机上运行Docker时,定时清理将变得更加重要。

Docker的清理任务并不是那么复杂,它们只是容易被人遗忘。但是,当您那些无用、闲置的容器正在占用大量空间时,您就需要清理它们(以及所有的残留物)来为真正有用的容器腾出更多的使用空间。

接下来,跟着小编来了解下该如何进行清理。

第一步:删除容器

首先,您需要了解并不是您创建的每个容器都会被永久使用,而且您也很容易忘记您所创造的那些闲置容器。有两个命令可以用来停止和删除所有的容器。但是,您可能有正在使用的容器,因此您并不希望进行大规模的删除操作

所以,当您要删除容器时,您首先需要查看系统上有哪些容器。为此,请执行以下命令:

docker ps –a

上面的命令将为您列出系统上处于运行和非运行状态下的所有容器(图A)。

(图A)快速浏览在Docker server上的容器

任何显示状态为“Exited”的容器都是已经停止运行了,并且可以安全删除的容器(如果您并不打算重新启动它)。要删除“Exited”状态下的容器,请输入如下命令:

docker rm CONTAINTER_ID

CONTAINER_ID的位置就是输入容器真实ID的前几位数字。

但是,当您想删除那些处于运行状态下的容器时,您首先需要使用以下命令来停止容器

docker stop CONTAINER_ID

CONTAINER_ID就是您想要删除的容器所独有的ID。现在,您可以按照上述相同的方式来删除容器了。

另外可以使用以下命令,来删除所有处于停止(Exited)状态下的容器:

docker rm -v $(docker ps -a -q -f status=exited)

第二步:删除Docker 卷

Docker数据卷是一个特殊的目录,位于一个或多个容器内,能够绕过Docker的存储驱动程序,并且可以直接与主机文件系统进行交互。数据卷作为容器之间持久、共享的数据,并在容器创建时预置进容器中。那么问题来了,当您删除容器时,卷可能会被保留

要删除(所谓的)悬挂卷,您应该输入如下命令:

docker volume rm $(docker volume ls -qf dangling=true)

您将看到类似于图B所示的内容。

(图B)用一个命令来删除悬挂卷

最后,输入以下命令以确保完成清理任务:

docker volume ls -qf dangling=true | xargs -r docker volume rm

第三步:使用精简的基础镜像

现在,大多数官方的Docker镜像使用的是以最新的Debian系统作为基础进行制作,代替了原先那些占用更大空间的镜像(如Ubuntu),您可以通过使用小巧的官方debian镜像(如debian:jessie)来节省空间。如果您觉得Debian镜像仍然不够小巧,可以通过BusyBox镜像将它们进一步压缩。您可以通过下载BusyBox镜像,随后运行一个容器,并使用以下命令来获取BusyBox的Shell访问权限:

docker run -it --rm busybox

进入BusyBox容器,开始构建。

第四步:使用cron进行自动化清理

假设您经常使用Docker,但似乎从来没有时间来清理Docker,那么您可能需要用到cron了。让我们创建一个cron作业(job)来进行自动化的日常清理工作。

首先要做的是为作业创建一个脚本。我们将脚本命名为docker_clean.sh,然后将其保存在 ~/中。

该文件的内容将是:

#!/bin/bash

docker rmi $ (docker images -q -f dangling=true)

docker volume rm $(docker volume ls -qf dangling=true)

保存并关闭文件。为了使它正常的运行,必须赋予它适当的权限。输入如下命令:

chmod 755 ~/docker_clean.sh

要想运行成功,就需要输入如下命令,将用户添加进Docker group 中。

sudo usermod -aG docker USER

其中USER是真实的用户名。

该用户需要注销后重新登录。现在,我们通过输入以下命令来创建cron作业:

crontab –e

在crontab文件的底部,添加以下内容:

0 0 1 ~/docker_clean.sh > /dev/null 2>&1

保存并关闭crontab文件。之后在每个午夜12点,Docker将自动进行清理任务,届时您就可以体验一个干净、整洁的Docker了。

保持清理

Docker将为您提供良好的服务。如果您经常清理服务器,那么极少会出现“空间已满”的状态——当Docker作为虚拟机运行时,这个问题尤为重要。经常清理Docker 来享受极致的体验吧!

目录
打赏
0
0
0
0
79136
分享
相关文章
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
45 16
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
99 30
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
47 12
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
340 93
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
79 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
439 15
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
376 78
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
249 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结