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 来享受极致的体验吧!

时间: 2024-07-31 04:51:00

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

PPT扁平化设计的8个实用小技巧

PPT扁平化设计的8个实用小技巧   扁平化是目前的主流设计风格,本文总结了扁平化设计的8个小技巧,字体.图标.排版.配色等都有提及,教程深入浅出,非常适合新手,学会可以直接拿来作海报和PPT设计. 最近帮一个师兄做一个PPT,用了几乎每个人都听说过的扁平化风格.于是趁热打铁,找了一些扁平化的作品和文章看了,自己对扁平化做一个总结,希望对你ppt抑或海报设计有所帮助. 注:此处所谈的扁平化指的是一个大的概念,将后面衍生出来所谓的"似扁平化"也包含进来. Tip 1:关于高光.渐变和投影

总结MySQL建表、查询优化的一些实用小技巧

本篇文章是对MySQL建表以及查询优化的一些实用小技巧进行了详细的分析介绍,需要的朋友参考下   MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间 (add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需

美图看看浏览照片两个实用小技巧

  每年的春节,不管是出门旅行还是回老家,最后总会抱着一堆旅行照片归来,浏览.整理是回味这个快乐春节的又一快事.然而,几百张大尺寸的照片,查看起来要等半天,以后查找起来也是麻烦,这却是一件烦心事.另外,下面我们就来帮你解决这个困扰的问题. 美图看看浏览照片两个实用小技巧 图片浏览不再慢半拍 旅游回来,迫不及待地想看看那些照片吧,用Windows默认查看器查看的话,不假死就是好事了,想要解决问题,除了升级内存,那就是升级看图软件了. 安装美图看看后就自动将它设置为默认看图软件了,首次用美图看看来图

Photoshop实用小技巧介绍

  Photoshop实用小技巧介绍 调整个别字符之间的距离 使用文字工具添加文字以后,如果你想调整个别字符之间的距离,可以将光标放在需要调整的两个字符之间,按住Alt键后,用左右方向键调整,非常灵活和方便. 快速改变对话框中显示的数值 要快速的改变在对话框中显示的数值,首先用鼠标点击那个数字,让光标处在对话框中,然后就可以用上下方向键来改变该数植了.如果在用方向键改变数值前先按下Shift键,那么数值的改变速度会加快(一般以10为步长). 临时切换到滴管工具 如果你现在处于以下的状态:毛笔,喷

JavaScript编程的10个实用小技巧_javascript技巧

在这篇文章中,我将列出10个Javascript实用小技巧,主要面向Javascript新手和中级开发者.希望每个读者都能至少从中学到一个有用的技巧. 1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. 复制代码 代码如下: var myVar   = "3.14159",str     = ""+ m

总结MySQL建表、查询优化的一些实用小技巧_Mysql

MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间(add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需要为市场部.运营部等建立各种报表,而很多报表里的数据都是需要到大记录表里去查询的,如果直接查询大表的

VC小技巧汇总之5则实用小技巧_C 语言

本文搜集汇总VC的5则小技巧,非常实用,对于VC程序设计有很好的参考借鉴价值,详情如下: 1.如何获取程序所在的路径 也就是获取你这个程序本身所在的路径. 在应用程序类CxxApp的头文件中定义一个变量CString m_exePath;用来放置程序的路径名,在应用程序类CxxApp的InitInstance()函数中加入如下语句: TCHAR m_Path[MAX_PATH]; GetModuleFileName( NULL, m_Path, MAX_PATH ); //获取程序路径(包括程序

jQuery实用小技巧_输入框文字获取和失去焦点的简单实例_jquery

jQuery实用小技巧_输入框文字获取和失去焦点的简单实例 <input id="txt" class="text1" type="text" /> <script src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function () { $("inp

FrontPage实用小技巧

frontpage|技巧 在制作网页的时候,如果给网页增加一些实用的小技巧,那一定会给你的网站增色不少,下面就介绍几个FrontPage的小技巧,希望能对你有帮助. 特效按钮的制作 用一般的方法制作网页中的按钮,一点也不好看,还是用个FrontPage来制作一个特效按钮吧. 1.打开FrontPage,点击菜单"插入-Web组件". (图1) 2.在弹出的对话框中选择组件类型为"动态效果",效果为"悬停按钮".(图2) 3.然后就可以来设置这个按

酷我音乐盒实用小技巧七则

很早就开始在用酷我音乐盒了,当时是在网上无意中发现的,很不错,现在一直在用,想要的歌一搜就有,点一下马上就能听,不用再费劲找歌下歌了,听网络歌曲比听本地音乐还要方便,功能很强大,但一直都没有仔细的研究一下它的功能,高考成绩刚刚出来,比较满意,可以好好放松一下自己,也抽时间好好研究了一下酷我音乐盒,这两天总结了几个比较实用的小技巧,给大家分享下. 技巧一:快速收藏最新榜单 "最新专辑"和"榜单家族"这两个栏目里每天都会提供最新的歌曲,确实方便了像我这样的懒人,平时只要