付费节点推荐
免费节点
节点使用教程
Docker社区非常活跃,每天都有许多新的实用工具出现。因此,天天去检查更新,试图跟上社区的步伐确实有点困难。所以我在此分享在工作中收集到的一些有趣而实用的Docker工具,帮助大家提高日常工作效率。
下面开始一一介绍我在使用Docker的过程中找到的有用工具吧。
Watchtower本身就像一个Docker镜像,所以它启动容器的方式和别的镜像无异。运行Watchtower的命令如下:
上面的代码中,我们用到了一个安装文件/var/run/docker.sock。这个文件主要用来使Watchtower与Docker后台API交互。 interval30秒的选项主要用来定义Watchtower的轮询间隔时间。Watchtower还支持一些别的选项,具体可以查看他们的文档(http://dwz.cn/65nl1Z)。
现在,开启一个容器,用Watchtower来监控。
Watchtower会开始监控friendlyhello容器。接下来我把新镜像push到Docker Hub,Watchtower接下来就会检测到有新镜像可用。它会关掉容器,然后用新镜像重启容器。这里会用到我们刚刚传到运行命令中的选项,换句话说,容器会在4000:80 公共端口选项上开启。
默认情况下,Watchtower会轮询Dockder Hub注册表查找更新的镜像。你也可以通过在环境变量REPO_USER和REPO_PASS中添加指定注册表证书,来设置Watchtower轮询私有注册表。
docker-gc可以被当做脚本,也可以被视为容器。我们用容器方法运行docker-gc,用它来查找可以被删除的容器和镜像。
在上述命令中,我们安装Docker socket文件,这样docker-gc就可以和Docker API进行交互。设置环境变量DRY_RUN=1,查找可被删除的容器和镜像。如果我们不这样设置,docker-gc直接删除它们。所以在删除之前,还是先确认一下。以上代码的输出结果如下:
确认需要删除的容器和镜像之后,再次运行docker-gc来进行删除清理,这次就不用再设置DRY_RUN参数了。
docker-slim工具可以通过静态和动态分析,针对你的“胖镜像”创建对应的“瘦镜像”。在GitHub( http://dwz.cn/65nobo)上下载二进制文件,即可使用docker-slim。该二进制文件在Linux和Mac可用。下载之后添加到路径PATH。
我创建了一个Docker镜像示例应用“friendlyhello”,Docker官方文档中有用到。这个镜像的大小如下图所示,194MB。
这么简单的一个应用,我们就要下载194MB的数据。再来看看docker-slim究竟能让它“瘦”多少。
docker-slim工具先是对“胖镜像”进行一系列的检测,最终创建了对应的“瘦镜像”。看一下“瘦镜像”的大小:
正如上图所示,“瘦镜像”大小为24.9MB。开启容器,运行照旧。docker-slim对Java、Python、Ruby和Node.js应用都非常友好。
你自己也试一下吧,看看结果如何。以我个人的项目来说,我认为docker-slim在大部分情况下都能适用。阅读docker-slim文档(http://dwz.cn/65noSb)了解更多。
Rocker给Dockerfile的指令集增加了新的指令。Rocker是由Grammaryly创建的,原意是用来解决Dockerfile格式的问题。Grammaryly团队写过一篇博客(http://t.cn/RSYSaCF)解释当初的动机。我建议你也看一下这篇博客,可以更好的理解Rocker。他们在博客中提出的两个关键问题是:
- Docker镜像的大小
- 构建速度缓慢
博客还提到了Rocker添加的一些新指令。查看Rocker文档(http://t.cn/RSYSNYp)了解更多。
- MOUNT用来分享volume,这样依赖管理工具就可以重用。
- FROM指令在Dockerfile中也存在。Rocker添加了不止一条FROM指令。这就意味着,一个Rockerfile可以通过创建多个镜像。首个指令集使用所有依赖来创建artifact,第二个指令集可以使用已有的artifact。这种做法极大的降低了镜像的大小。
- TAG用来标记处于不同构建阶段的镜像。这样一来就不在需要手动标记镜像了。
- PUSH用来把镜像push到registry。
- ATTACH用来和中间步骤交互,在debug的时候非常有用。
安装rocker,对Mac用户来说,只要运行几条brew命令就行了:
安装完成后,就可以使用rocker创建镜像。
创建镜像并将其push到Docker Hub,可以用下面这条命令:
安装之后,只需配置DOCKER_HOST环境变量,即可使用ctop。
运行ctop命令,可以查看所有容器的状态。
运行ctop-a命令,可以仅查看当前运行的容器。
ctop简单好用,查看机器上运行的容器非常方便。了解更多,请看ctop文档(http://t.cn/RSYSQuS)。
以上,就是我觉得比较有用的Docker工具了。如果你也用到过一些好用的Docker工具,不妨在评论区告诉我们吧。
原文链接:https://blog.xebialabs.com/2017/05/18/5-docker-utilities-you-should-know/
未经允许不得转载:Bcoder资源网 » 五个你应该知道的Docker实用工具
评论前必须登录!
登陆 注册