5个你必须知道的Docker实用工具
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删除的所有镜像和容器。
docker-gc支持的选项还有其他几个。我建议您阅读docker-gc文档(https://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。
您可以看到一个简单的应用程序,我们必须下载194 MB的数据。让我们用docker-slim来看看它可以去除多少多余的东西。
docker-slim实用程序将执行一系列步骤 -检查、分析较大的镜像,最终创建一个缩略版本的镜像。我们来看下这个缩略版的大小。
正如你上面看到的,这个镜像的大小被所缩减到24.9MB。您可以启动容器,并以相同的方式运行。docker-slim实用程序适用于Java,Python,Ruby和Node.js应用程序。
尝试一下,看看你有没有收获。在我的个人项目中,我发现它在大多数情况下都有效。
您可以从其文档(https://github.com/docker-slim/docker-slim/blob/master/README.md)中了解更多关于docker-slim的信息。
4. rocker:打破Dockerfile的限制
大多数使用Docker的开发人员使用Dockerfile构建镜像。Dockerfile是一种声明式的方式来定义用户可以在命令行中调用的所有命令,以便组装镜像。
Rocker向Dockerfile指令集添加了新的指令。 Rocker是由Grammarly创建的,用于解决Dockerfile格式所面临的问题。Grammarly团队写了一篇深入博客,解释了创建它的原因。我建议你阅读它,以更好地了解Rocker。
他们在帖子中强调的两个问题是:
Docker镜像的大小。
构建速度缓慢。
博客还提到了Rocker添加的一些新指令。请参阅Rocker文档(https://github.com/grammarly/rocker/blob/master/README.md),了解Rocker支持的所有说明。
MOUNT用于在构建之间共享卷,以便它们可以重用依赖关系管理工具。
在Dockerfile中也存在FROM指令。Rocker可以添加多个FROM指令。这意味着您可以从单个Rockerfile创建多个镜像,第一组指令将使用所有依赖关系构建工件。第二组指令可以使用构建工件,这大大降低了镜像的大小。
TAG用于构建不同阶段标记镜像,这意味着您不必手动标记镜像。
PUSH用于将镜像推送到注册表。
ATTACH允许您以交互方式运行中间步骤,这对调试非常有用。
要使用Rocker,您必须将它安装在你的机器上。对于Mac用户来说,就像运行几个brew命令一样简单:
一旦安装,您可以使用Rocker通过将其传递给Rockerfile来构建镜像:
要构建映像并将其推送到Docker Hub,可以运行以下命令:
Rocker有一套很好的功能。 要了解更多信息,请参阅其文档(https://github.com/grammarly/rocker/blob/master/README.md)。
5. ctop:容器顶部接口
最近我开始使用的实用程序是ctop,它提供了多个容器的实时度量视图。如果你是一个mac用户,那么你可以使用brew安装ctop,如下所示。
一旦安装,您可以开始使用ctop。它只需要配置DOCKER_HOST环境变量。要查看所有容器的状态,可以运行ctop命令。
要仅查看正在运行的容器,可以使用ctop -a命令。
ctop是一个简单的实用程序,非常有用,可以了解在主机上运行的容器。
本文转自d1net(转载)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
近年来,国内安防企业由于受到原材料价格普遍上涨、人民币升值、消费需求减弱、劳动力成本攀升,以及货币政策紧缩等诸多因素的影响,为数不少的中小企业已频临倒闭边缘:企业订单少、招工难、融资难、资金回笼慢成为普遍现象。在国内安防企业中,中小型企业占绝大多数,毫无疑问也同样面临着同样的问题。安防业内人士想必都有一个相同的感受,近两年来在安防经历了风风火火的发展之后开始缓慢下来。勇于创新、精耕细作的企业逐步发展成为行业巨头,畏缩不前、借壳生产的企业走向消亡。在这样一种境况下,企业该如何经住考验,冲出经济阴霾? 从我国安防行业2016年一季度发展情况看,形势不容乐观。据对行业景气调查资料显示:一季度安防行业主要景气指数均出现了不同程度的下滑,其中尤其是内销市场、生产规模、企业盈利水平等指标下降较大,企业在资产投入的积极性也有所降低。形成这种情况的原因主要是受到国内外经济大环境不景气的影响,另一方面也与行业季节特征因素有关。 面对这些信息的预告,企业该如何做呢? 企业加大注重科技创新投入 在科技步伐加快、企业差距拉大的情况下,我国安防企业需要更加注重科技研发的投入。在创新与变革求发展,有突破才会有成功...
- 下一篇
精工之路为中国安防制造正名
“中国制造2025”比肩德国工业4.0,这是国家层面上对我国粗犷型经济转向精细化制造的要求。在这样的舆论政策下,是对每一家中国企业在制造意识形态上的统一要求,是对中国制造过去十几年在国际上遭受诟病的精神激励。安防行业作为传统的制造业,虽然产品受到网络化的影响不断加强,但安防行业服务用户的本质还是体现在制造工艺及可靠的产品质量上。 精工之路要有超前意识 与过去相比,中国制造近几年不管在质量还是在生产工艺上都有了长足进步,精工制造的理念在各行业中得以持续发酵,并在家电等行业形成一批优秀的企业代表。安防行业虽然起步较晚,但行业产品制造的水平也在过去几年得到迅速的发展。以当前安防产品制造所面临的问题分析,在产品质量及功能上,国内安防设备商与外商的差距正在缩小。现在安防厂商共同面临的问题是网络安全问题,其包含两个方面:其一、网络安全不是某台设备、某家设备商的问题,而是所有厂商需要面临的挑战;其二、不能静态地看问题,因为网络技术与漏洞也是日新月异,目前的网络安全技术无法百分百地防范未来发生的问题,这要求设备制造商严谨地进行产品生产量产前各项安全测试的工作,通过技术创新提升产品的安全性。 随着跨学科...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Redis,开启缓存,提高访问速度