Docker 1.13 最实用命令行:终于可以愉快地打扫房间了

Docker 1.13 出来已经有一段时间了,新版本添加了许多有用的命令,本文作者从处女座的洁癖(此处有雾)出发,告诉大家一些整理环境的小技巧。打扫房间再也不需费时又费力了,简单的命令,就可以轻松地把物品分门别类(容器、镜像、网络、存储卷……)地整理好

在 1.13 版本中, Docker 向 CLI 添加了一些有用的命令,让环境更加整洁。你可能已经体验了很长时间乱糟糟的开发环境——无用的容器,挂起的 Docker 镜像,弃置的 volume ,被遗忘的网络……所有这些过时的事物占据了宝贵的资源,最终导致环境无法使用。在之前的文章中曾经提到用各种各样的命令保持环境的整洁,例如:

docker rm -f $(docker ps -aq)

强制地删除所有正在运行的、暂停的以及终止的容器。同样地,也有命令可以删除挂起的镜像、网络和 volume 。

尽管上述命令解决了问题,但是它们要么专有,要么冗长或者难用。而新加入的命令直截了当又简单好用,现在就开始一一介绍吧。

管理命令

为了整理 CLI , Docker 1.13 引进了新的管理命令,如下:

  • system
  • container
  • image
  • plugin
  • secret

Docker 的老版本中已经有了 network, node, service, swarm 和 volume 。这些新命令组子命令过去作为 root 命令直接实现。举个例子:

docker exec -it [container-name] [some-command]

exec 命令现在是 container 下面的一个子命令,这个命令相当于:

docker container exec -it [container-name] [some-command]

个人猜测为了兼容性的考虑,旧语句眼下还会使用一段时间。

Docker 系统

现在有一个新管理命令 system 。它有 4 个子命令分别是 df, events, info 和 prune 。命令 docker system df 提供 Docker 整体磁盘使用率的概况,包括镜像、容器和(本地) volume 。所以我们现在随时都可以查看 Docker 使用了多少资源。

如果之前的命令展示出 docker 已经占用了太多空间,我们会开始清理。有一个包办一切的命令:

docker system prune

这个命令会删除当前没有被使用的一切项目,它按照一种正确的序列进行清理,所以会达到最大化的输出结果。首先删除没有被使用的容器,然后是 volume 和网络,最后是挂起的镜像。通过使用 y 回复来确认操作。如果想在脚本中使用这个命令,可以使用参数 --force 或者 -f 告诉 Docker 不要发来确认请求。

Docker 容器

我们已经知道许多 docker container 的子命令。它们过去(现在也是)是 docker 的直接子命令。可以通过下面的命令得到完整的子命令列表:

docker container --help

在列表中会看到一个 prune 命令。如果使用它,那么只会删除无用的容器。因此这条命令比 docker system prune 命令更局限。使用 --force 或者 -f 同意可以让 CLI 不再进行确认请求。

Docker 网络

这里也有一个 prune 命令:

docker network prune

删除所有孤立的网络。

Docker Volume

volume 也有新的 prune 命令了:

docker volume prune

删除所有(本地)没有被容器使用的 volume 。

Docker 镜像

新的镜像命令也是 prune 子命令。--force 用法如上面一样, --all 可以删除所有不用的镜像,不只挂起的镜像。

docker image prune --force --all

这个命令可以删除所有不使用的镜像并且不再请求确认。

总结

Docker 1.13 不仅通过引入 admin command 添加了一些需要的命令,也让我们找到了一些非常有用的清理环境的命令。笔者最爱的命令莫过于 docker system prune ,让环境一直保持干净整齐。

时间: 2024-12-08 02:28:23

Docker 1.13 最实用命令行:终于可以愉快地打扫房间了的相关文章

推荐给开发人员的6个实用命令行工具

推荐给开发人员的6个实用命令行工具 作为一名Web开发者,当程序出现问题时日子总不是那么好过.问题可能无处不在,可能是你发送的请求出了错,可能是回复出了错,可能是你使用的某个第三方库出了问题,又或者是一个外部API调用失败了.优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率.命令行工具尤其有用,因为它们非常易于做自动化和脚本处理,能够以各种不同的方式进行组合和重用.本文介绍了6个非常强大且灵活的工具,熟练使用这些工具能使你的

【Vim】实用命令行

在vim中高亮关键字 syntax enable 可以高亮关键字:一般后面还要在跟一个syntax on打开语法高亮 syntax clear 清除关键字高亮 在secureCRT不是xterminal模式的时候,试了一下,没起作用啊,如果是xterminal模式的时候是会起作用的 在vim中查找 / 后面跟要查找的字符串:从当前光标位置向上搜索 ? 后面跟要查找的字符串:从当前光标位置向下搜索 n 找下一个 N 找上一个 清除并重画屏幕 [Ctrl+l]组合键 vim快捷键定制 对于键盘符号,

OSX: 安装打印机的实用命令行

其实很简单,就是实用lpadmin命令,下面给出一个例子: printername="YOUR_PRINTER_NAME" location="LOCATION INFO" gui_display_name="HP Color LaserJet M600 in Office for Example" address="ipp://printserver.yourcompany.org/YOUR_PRINTER_NAME" dr

推荐给开发人员的实用命令行工具

摘要:优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率.本文介绍了6个非常强大且灵活的工具,熟练使用这些工具能使你的生活变得更轻松一些. 作为一名Web开发者,当程序出现问题时日子总不是那么好过.问题可能无处不在,可能是你发送的请求出了错,可能是回复出了错,可能是你使用的某个第三方库出了问题,又或者是一个外部API调用失败了.优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能

Linux实用命令行

对于Linux命令,我在学习和使用过程中是有一个循序渐进的过程的.适合小白学习快速使用.大笑 跳转目录:cd +路径 例如:cd /home/workspace 查看某个文件,常用的是查看日志:tail -f +文件名 例如tail -300f server.xml 查看最后三百行 还可以用more +文件名 例如 more server.xml 从文件第一行开始往下查看 查看磁盘内存:df -h 或者df -k 这个一般内存满了会用到,查看空间使用情况. 启动杀死服务: cd /java/to

干货!开发人员必备技能——SVN实用命令行指令演练

01. 将服务器文件下载到本地 # 切换工作目录 $ cd 经理的工作目录 # checkout服务器上的代码仓库 $ svn co http://xx.x.x.xx/svn/weibo --username manager --password jingli 提示:checkout(co)之后,本地代码库中会记录用户名和密码,后续操作不用再另行指定 02. 经理添加文件 * svn 常用命令 ---------------------------------------------------

linux 实用命令行工具

man手册页转换为pdf文档 man -t cmd | ps2pdf - cmd.pdf 搜索某个包 yum search package-name

《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf

下载地址:网盘下载 内容简介  · · · · · · 本书是一本关于Linux 命令行与shell 脚本编程的全面教程.全书分为四部分:第一部分介绍Linuxshell 命令行:第二部分介绍shell 脚本编程基础:第三部分深入探讨shell 脚本编程的高级内容:第四部分介绍如何在现实环境中使用shell 脚本.本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料. 本书内容全面,语言简练,示例丰富,适合于linux 系统管理员及Linux 爱好者阅读

JAVA代码在命令行下的编译

p { text-indent: 2em } .main { font-weight: bolder } 目的 跟C++一样,JAVA可以通过命令行直接编译得到字节码文件,并且使用java命令运行.通过JAVA的编译和运行命令只是熟悉一下JAVA的一些特征,包括包和目录,classpath,jar格式:而且在调试小程序的时候其实用命令行是足够的. 但是在进行大型项目的时候还是要用较大的IDE,例如eclipse和NetBeans,显然eclipse是比NetBeans要复杂得多的,这里不说. 主