Docker 1.13 最实用命令行:终于可以愉快地打扫房间了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dataman
V2EX    Docker

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

  •  
  •   dataman 2016-12-16 10:31:17 +08:00 5086 次点击
    这是一个创建于 3246 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 ,让环境一直保持干净整齐。

    本文作者: Gabriel Schenker 原文链接: https://lostechies.com/gabrielschenker/2016/12/12/containers-cleanup-your-house-revisited/

    3 条回复    2017-03-17 13:57:11 +08:00
    ufo22940268
        1
    ufo22940268  
       2016-12-16 11:12:10 +08:00
    今天我就碰到了 docker 吃掉我的硬盘的问题

    df 出来是这样的:



    jpmorn
        2
    jpmorn  
       2016-12-16 11:32:12 +08:00
    @ufo22940268 这是蜂巢啊
    donghui
        3
    donghui  
       2017-03-17 13:57:11 +08:00
    今天用了下 docker image prune --force --all
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2740 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:42 PVG 22:42 LAX 06:42 JFK 09:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86