专栏名称: 程序员之家
程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!
目录
相关文章推荐
码农翻身  ·  11w*14薪,进DeepSeek了! ·  11 小时前  
程序员的那些事  ·  3·15 ... ·  4 天前  
OSC开源社区  ·  Java玩转MCP:手把手教你打造Git ... ·  4 天前  
51好读  ›  专栏  ›  程序员之家

5个你必须知道的Docker实用工具

程序员之家  · 公众号  · 程序员  · 2017-06-09 22:00

正文

作者 : Shekhar Gulati

翻译 : Vincent

原文:https://dzone.com/articles/5-docker-utilities-you-should-know

译文:http://geek.csdn.net/news/detail/200008


Docker社区已经创建了许多开源的工具,更多的用例使得它比您想像的更有用。你可以在这里查阅它们。


你在网上能找到很多酷炫的Docker工具。绝大多数是开源的。


过去两年,我已经积极地将Docker用到我的对大多数开发项目中。在你开始使用Docker的时候,你会发现,在很多用例里它比你预想的更加适用。


你会希望Docker为你做得更多,而且它不会让你失望!


Docker社区非常活跃,每天都有很多有用的工具。在这个社区你很难知道哪些发生了革新。为了帮助你,我已经收集了我日常工作中用到的很有趣很实用的Docker工具。这些让我工作更加高效,消除了很多的手动工作。


让我们来看看我在使用Dockerize工具的过程中发现的每个工具。


1. watchtower:自动更新Docker容器


Watchtower 监视运行中的容器,以便于对容器最初的镜像进行更改。当Watchtower检测到 镜像发生改变时,会自动使用新的镜像重启容器。


我在本地开发中想要创建新的镜像就会使用它。


Watchtower本身会打包成Docker映像,所以您可以运行它,就像运行任何其他容器一样。当你要运行Watchtower,您将会用到下面的指令:



在上面的命令中,我们启动了一个带有挂载文件/var/run/docker.sock . 的Watchtower容器。这个步骤是必须的,通过设置30秒的时间间隔选项,为了能够让Watchtower可以和Docker守护进程API进行交互。这个时间定义了Watchtower 的轮询时间。Watchtower里面有很多的这样的选项设置,你可以按照文档所述使用它们。


现在我们就开始让Watchtower去监视一个容器:



Watchtower将要开始监视friendlyhello这个容器。当我将新的镜像推送到Docker Hub时,Watchtower将在下一次运行时检测到有新的镜像可用,它将停止容器,并使用新的镜像启动容器,它会传递给我们运行命令行时的选项设置。换句话说,容器将以4000:80端口启动。


默认情况下,Watchtower将轮询Docker Hub注册表以查找更新的镜像。您可以通过将注册表凭据传递给环境变量REPO_USER和REPO_PASS来配置Watchtower,让它去轮询私有注册表。要了解更多关于Watchtower的信息,我建议您去查看Watchtower文档 https://github.com/v2tec/watchtower/blob/master/README.md )。


2. docker-gc:容器和镜像的垃圾回收


docker-gc 实用程序会帮助你清理Docker主机,去除那些没用的容器和镜像文件。它会删除一个多小时前存在的所有容器。此外,它还会删除不属于任何剩余容器的
镜像。


您可以将docker-gc用作脚本和容器。我们将运行docker-gc作为容器,用它来找到所有将要被删除的容器和镜像。



在上面显示的命令中,我们安装了Docker套接字文件,以便docker-gc可以与Docker API进行交互。我们设置一个环境变量DRY_RUN = 1,以查找哪些容器和镜像将被删除。如果我们没有设置这个选项,docker-gc会将他们全部删除。这首先就验证了docker-gc清理的很好。上述命令的输出如下:



如果您还想使用docker-gc清理,则可以再次运行没有DRY_RUN标志的docker-gc来执行清理。



上述命令的输出将告诉您docker-gc删除的所有镜像和容器。


doc ker-gc支持的选项还有其他几个。我建议您阅读docker-gc文档(h ttps://github.com/spotify/docker-gc/blob/master/README.md )以了 解更多信息。


3. docker-slim:容器的魔法丸


如果担心Docker镜像的大小, docker-slim 将会解决您的担忧。


docker-slim实用程序使用静态和动态分析来将大的镜像转变为缩略的镜像。要使用docker-slim,您必须从Github下载其二进制文件。二进制文件可用于Linux和Mac。下载二进制文件后,将其添加到PATH中。


我创建了一个Docker图像,例如:使用在Docker官方文档( https://docs.docker.com/get-started/ )中的应用程序friendlyhello。正如你下面所看到的镜像的大小是194MB。









请到「今天看啥」查看全文