推荐5款好用的开源 Docker 工具( 二 )


为举例需要,我参考 Docker 官方文档创建了一个名为 friendlyhello 的 Docker 镜像,该镜像大小为 194MB(如下所示):

推荐5款好用的开源 Docker 工具

文章插图
 
你可以看到,对于一个简单的应用程序,我们必须下载 194 MB 的数据 。让我们用 docker-slim 来看看它能减掉多少脂肪 。
$ docker-slim build --http-probe friendlyhellodocker-slim 工具对胖镜像进行一系列的检查、测量,最终创建一个瘦版本的镜像 。让我们看看这个减过肥的大小吧 。
 
推荐5款好用的开源 Docker 工具

文章插图
 
 
正如你所看到的,镜像大小被减少到 24.9 MB 。你可以启动这个容器,它将以同样的方式运行 。docker-slim 工具支持 JAVA、Python、Ruby 和 Node.js 应用 。
你自己试试,看看能减下来多少 。在我的个人项目中,我发现它在大多数情况下都适用 。你可以从其文档中了解更多关于 docker-slim 的信息:
https://github.com/docker-slim/docker-slim/blob/master/README.md
GitHub 地址:
https://github.com/docker-slim/docker-slim
4、rocker:突破 Dockerfile 的限制
大多数使用 Docker 的开发人员都使用 Dockerfile 来构建镜像 。Dockerfile 是一种声明式的方法,用于定义用户可以在命令行上调用的所有命令,从而组装镜像 。
Rocker(https://github.com/grammarly/rocker)为 Dockerfile 指令集增加了新的指令 。Grammarly 为了解决他们遇到的 Dockerfile 格式的问题,创建了 Rocker 。Grammarly 团队写了一篇深入的博客,解释他们创建它的原因 。我建议你读一读,以更好地了解 Rocker 。他们在博文中强调了两个问题:
  1. Docker 镜像的大小 。
  2. 缓慢的构建速度 。
该博客还提到了 Rocker 加入的一些新指令 。参考 Rocker 文档,了解 Rocker 支持的所有指令:
https://github.com/grammarly/rocker/blob/master/README.md
  1. MOUNT 用于在构建之间共享卷,以便能够被依赖项管理工具重用 。
  2. 在 Dockerfile 中原本已有 FROM 指令 。而 Rocker 使我们可以添加一条以上的 FROM 指令 。这意味着你可以通过单个 Rockerfile 创建多个镜像 。第一批指令用于构建产品所有的依赖;第二批指令用于构建产品;这能够极大地降低镜像大小 。
  3. TAG 用于在构建的不同阶段标识镜像,这意味着你不必手动为每个镜像打标签 。
  4. PUSH 用于将镜像推送到镜像仓库 。
  5. ATTACH 使你能够交互式地运行中间步骤 。这一点对于调试非常有用 。
要使用 Rocker,首先必须在你的机器上安装 。对 Mac 用户来说,就是简单地运行几条 brew 命令:
 
$ brew tap grammarly/tap$ brew install grammarly/tap/rocker一旦完成安装,你就可以通过传递 Rockerfile 使用 Rocker 来构建镜像了:
FROM python:2.7-slimWORKDIR /AppADD . /appRUN pip install -r requirements. txtEXPOSE 80ENV NAME WorldCMD ["python","app.Py"]TAG shekhargulati/ friendlyhello:{{ .VERSION }}PUSH shekhargulati/friendlyhello:{{ .VERSION }}若要构建一个镜像并将其推送到 Docker Hub,你可以运行以下命令:
$ rocker d build --push -var VERSION-1.0GitHub 地址:
https://github.com/grammarly/rocker
5、ctop:容器的类顶层接口
ctop 是我最近开始使用的一个工具,它能够提供多个容器的实时指标视图 。如果你是一个 Mac 用户,可以使用 brew 安装,如下所示:
$ brew install ctop一旦完成安装,就可以开始使用 ctop 了 。现在,你只需要配置 DOCKER_HOST 环境变量 。
你可以运行 ctop 命令,查看所有容器的状态 。
推荐5款好用的开源 Docker 工具

文章插图
 
若只想查看正在运行的容器,可以使用 ctop -a 命令 。
ctop 是一个简单的工具,对于了解在你的主机上运行的容器很有帮助 。你可以在 ctop 文档中了解更多相关信息:
https://github.com/bcicen/ctop/blob/master/README.md
GitHub 地址:
https://github.com/bcicen/ctop
以上是我发现的很有用的 5 款 Docker 工具 。你在日常工作中使用 Docker 工具吗?希望这些工具能够为你带来帮助,也欢迎在评论中推荐你觉得有用的工具 。

【推荐5款好用的开源 Docker 工具】


推荐阅读