我的编程空间,编程开发者的网络收藏夹
学习永远不晚

有哪些开源的Docker工具

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

有哪些开源的Docker工具

今天就跟大家聊聊有关有哪些开源的Docker工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

watchtower(自动更新 Docker 容器)

Watchtower 监视运行容器并监视这些容器最初启动时的镜像有没有变动。当 Watchtower 检测到一个镜像已经有变动时,它会使用新镜像自动重新启动相应的容器。我想在我的本地开发环境中尝试最新的构建镜像,所以使用了它。

Watchtower 本身被打包为 Docker 镜像,因此可以像运行任何其他容器一样运行它。要运行 Watchtower,你需要执行以下命令:

docker run -d --name watchtower --rm -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower --interval 3

在上面的命令中,我们使用一个挂载文件 /var/run/docker.sock 启动了 Watchtower 容器。这么做是有必要的,为的是使 Watchtower 可以与 Docker 守护 API 进行交互。我们将 30 秒传递给间隔选项 interval。此选项定义了 Watchtower 的轮询间隔。Watchtower 支持更多的选项,你可以根据文档中的描述来使用它们。

我们现在启动一个 Watchtower 可以监视的容器。

docker run -p 4000:80 --name friendlyhello shekhargulati/friendlyhello:latest

现在,Watchtower 将开始温和地监控这个 friendlyhello 容器。当我将新镜像推送到 Docker Hub 时,Watchtower 在接下来的运行中将检测到一个新的可用的镜像。它将优雅地停止那个容器并使用这个新镜像启动容器。它将传递我们之前传递给这条 run 命令的选项。换句话说,该容器将仍然使用 4000:80 发布端口来启动。

默认情况下,Watchtower 将轮询 Docker Hub 注册表以查找更新的镜像。通过传递环境变量 REPO_USER 和 REPO_PASS 中的注册表凭据,可以将 Watchtower 配置为轮询私有注册表。

要了解更多 Watchtower 的相关信息,建议你阅读 Watchtower 文档

https://github.com/v2tec/watchtower/blob/master/README.md

GitHub 地址:https://github.com/v2tec/watchtower

docker-gc(容器和镜像的垃圾回收)

Docker-gc 工具通过删除不需要的容器和镜像来帮你清理 Docker 主机。它会删除存在超过一个小时的所有容器。此外,它还删除不属于任何留置容器的镜像。

你可以将 docker-gc 作为脚本和容器来使用。我们将以容器的形式运行 docker-gc。若要使用 docker-gc 来查找所有可以删除的容器和镜像,命令如下:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -e DRY RUN=1 spotify/docker-gc

上述命令中,我们加载了 docker.sock 文件,以便 docker-gc 能够与 Docker API 交互。我们传递了一个环境变量 DRY_RUN=1 来查找将被删除的容器和镜像。如果不提供该参数,docker-gc 会删除所有容器和镜像。最好事先确认 docker-gc 要删除的内容。上述命令的输出如下所示:

\[2017-04-28T06:27:24\] \[INFO\] : The following container would have been removed 0c1b3b0972bb792bee508 60c35a4 bc08ba32b527d53eab173d12a15c28deb931/vibrant_ yonath\[2017-04-28T06:27:24\] \[INFO\] : The following container would have been removed 2a72d41e4b25e2782f7844e188643e395650a9ecca660e7a0dc2b7989e5acc28 /friendlyhello_ web\[2017-04-28T06:27:24\] \[INFO\] : The following image would have been removed sha256:00f017a8c2a6e1 fe2f fd05c281 f27d069d2a99323a8cd514dd35f228ba26d2ff\[busybox: latest\]\[2017-04-28T06:27:24\] \[ INFO\] : The following image would have been removed sha256 :4a323b466a5ac4ce6524 8dd970b538922c54e535700cafe9448b52a3094483ea\[hello-world:latest\]\[2017-04-28T06:27:24\] \[INFO\] : The following image would have been removed sha256:4a323b4 66a5ac4ce65248dd970b538922c54e535700cafe9448b52a3094483ea\[python:2.7-slim\]

如果你认同 docker-gc 清理方案, 可以不使用 DRY_RUN 再次运行 docker-gc 执行清空操作。

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock spotify/docker-gc

docker-gc 还支持一些其他的选项。建议你阅读 docker-gc 文档以了解更多相关信息:

https://github.com/spotify/docker-gc/blob/master/README.md

GitHub 地址:https://github.com/spotify/docker-gc

docker-slim(面向容器的神奇减肥药)

如果你担心你的 Docker 镜像的大小,docker-slim 可以帮你排忧解难。

docker-slim 工具使用静态和动态分析方法来为你臃肿的镜像瘦身。要使用 docker-slim,可以从 Github 下载 Linux 或者 Mac 的二进制安装包。成功下载之后,将它加入到你的系统变量 PATH 中。

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

有哪些开源的Docker工具

你可以看到,对于一个简单的应用程序,我们必须下载 194 MB 的数据。让我们用 docker-slim 来看看它能减掉多少脂肪。

docker-slim build --http-probe friendlyhello

docker-slim 工具对胖镜像进行一系列的检查、测量,最终创建一个瘦版本的镜像。让我们看看这个减过肥的大小吧。

有哪些开源的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

rocker(突破 Dockerfile 的限制)

大多数使用 Docker 的开发人员都使用 Dockerfile 来构建镜像。Dockerfile 是一种声明式的方法,用于定义用户可以在命令行上调用的所有命令,从而组装镜像。

Rocker(https://github.com/grammarly/rocker)为 Dockerfile 指令集增加了新的指令。Grammarly 为了解决他们遇到的 Dockerfile 格式的问题,创建了 Rocker。Grammarly 团队写了一篇深入的博客,解释他们创建它的原因。我建议你读一读,以更好地了解 Rocker。他们在博文中强调了两个问题:

Docker 镜像的大小。

缓慢的构建速度。

该博客还提到了 Rocker 加入的一些新指令。参考 Rocker 文档,了解 Rocker 支持的所有指令:

https://github.com/grammarly/rocker/blob/master/README.md

MOUNT 用于在构建之间共享卷,以便能够被依赖项管理工具重用。

在 Dockerfile 中原本已有 FROM 指令。而 Rocker 使我们可以添加一条以上的 FROM 指令。这意味着你可以通过单个 Rockerfile 创建多个镜像。第一批指令用于构建产品所有的依赖;第二批指令用于构建产品;这能够极大地降低镜像大小。

TAG 用于在构建的不同阶段标识镜像,这意味着你不必手动为每个镜像打标签。

PUSH 用于将镜像推送到镜像仓库。

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.0

GitHub 地址:https://github.com/grammarly/rocker

ctop(容器的类顶层接口)

ctop 是我最近开始使用的一个工具,它能够提供多个容器的实时指标视图。如果你是一个 Mac 用户,可以使用 brew 安装,如下所示:

brew install ctop

一旦完成安装,就可以开始使用 ctop 了。现在,你只需要配置 DOCKER_HOST 环境变量。

你可以运行 ctop 命令,查看所有容器的状态。

有哪些开源的Docker工具

若只想查看正在运行的容器,可以使用 ctop -a 命令。

看完上述内容,你们对有哪些开源的Docker工具有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

有哪些开源的Docker工具

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

有哪些开源的Docker工具

今天就跟大家聊聊有关有哪些开源的Docker工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。watchtower(自动更新 Docker 容器)Watchtower 监视运行容器并
2023-06-06

与Docker紧密整合的开源工具有哪些

这篇文章将为大家详细讲解有关与Docker紧密整合的开源工具有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Docker 一直是第三方开发人员关注的重点,很多项目扩展、补充或增强了 Do
2023-06-19

开源BI的工具有哪些

这期内容当中小编将会给大家带来有关开源BI的工具有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。开源软件目前还是国外工具比较多,比如现在比较常用的 Pentaho、Superset、Jaspersof
2023-06-03

Hadoop开源工具有哪些

本篇内容介绍了“Hadoop开源工具有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Hadoop相关工具1. HadoopApach
2023-06-02

Hadoop有哪些开源工具

这篇文章主要讲解了“Hadoop有哪些开源工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hadoop有哪些开源工具”吧!  1、ApacheMesos  代码托管地址:ApacheSVN
2023-06-03

有哪些开源的Java IDE 工具

本篇内容介绍了“有哪些开源的Java IDE 工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!BlueJBlueJ 为 Java 初学者提
2023-06-16

常用的NLP开源工具有哪些

常用的NLP开源工具有以下几种:1. NLTK(Natural Language Toolkit):是Python编程语言中最受欢迎的NLP工具之一,提供了丰富的语料库和语言处理算法。2. SpaCy:是一个用于自然语言处理的Python库
2023-09-21

有哪些开发工具

开发工具有:1、集成开发环境IDE,常见的有Eclipse,Visual Studio和IntelliJ IDEA等;2、版本控制系统VCS,常见的有Git和Subversion等;3、自动化构建工具,常见的有Maven和Gradle等;4
2023-08-03

Spring Boot Docker打包工具有哪些

这篇文章给大家分享的是有关Spring Boot Docker打包工具有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。springboot是什么springboot一种全新的编程规范,其设计目的是用来简化新S
2023-06-14

Linux常用的开源项目管理工具有哪些

这篇文章主要介绍“Linux常用的开源项目管理工具有哪些”,在日常操作中,相信很多人在Linux常用的开源项目管理工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux常用的开源项目管理工具有哪些
2023-06-27

html5的开发工具有哪些

HTML5的开发工具有很多,以下是其中一些常用的开发工具:1. Sublime Text:一个轻量级的文本编辑器,支持HTML5的语法高亮显示和代码补全功能。2. Visual Studio Code:微软开发的免费开源代码编辑器,支持HT
2023-08-24

html5开发工具有哪些

小编给大家分享一下html5开发工具有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html5开发工具有:Dreamweaver、DevExtreme、Web
2023-06-15

Python开发工具有哪些

这篇文章主要介绍“Python开发工具有哪些”,在日常操作中,相信很多人在Python开发工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python开发工具有哪些”的疑惑有所帮助!接下来,请跟着小编
2023-06-17

Android开发工具有哪些

Android开发工具有:1、Android Studio;2、Eclipse;3、Visual Studio Code;4、JRebel for Android;5、Genymotion;Android Studio是Google官方推出的Android开发环境,它提供了代码编辑、调试、性能工具、模拟器等全套开发工具,是Android开发的优选工具。
Android开发工具有哪些
2023-10-29

Java开源工具在linux上的跟踪方式有哪些

这篇文章主要为大家展示了“Java开源工具在linux上的跟踪方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java开源工具在linux上的跟踪方式有哪些”这篇文章吧。在我们常用的Js
2023-06-17

互联网中著名的开源分析工具有哪些

这篇文章主要为大家展示了“互联网中著名的开源分析工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“互联网中著名的开源分析工具有哪些”这篇文章吧。著名的开源分析工具包括r语言、python、
2023-06-29

适用于Linux的优秀开源缓存工具有哪些

本篇内容介绍了“适用于Linux的优秀开源缓存工具有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是缓存或内容缓存?缓存(或内容缓存
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录