执行空闲容器主机自动关闭的服务

docker-watchdog的Python项目详细描述


Docker空闲监视器

docker watchdog python包提供了一个后台服务,用于监视docker容器主机是否处于非活动状态,并在达到预定义的空闲阈值后自动关闭主机。与shutdown-if-idle包类似,预期的用例是自动关闭作为连续集成(ci)管道一部分按需启动的云vm,尽管重点是docker容器主机。

该软件包的主要功能包括:

  • 支持Windows、MacOS和Linux
  • 在所有支持的操作系统下提供简单的服务安装
  • 将云提供商的计费粒度考虑在内,以确保关机决策具有成本效益

内容

安装

要求

Docker Watchdog软件包需要以下各项:

  • python 3.5或更新版本
  • 在macos和linux下,需要安装pleaserunruby gem来执行服务安装

软件包安装

要安装docker watchdog python包本身,只需运行:

pip3 install docker-watchdog

(您可能需要在macos和linux下用sudo作为此命令的前缀。)

安装软件包后,您可以通过以下任一命令运行监视程序:

# Uses the wrapper generated by pip
docker-watchdog

# Invokes the package directly via the Python interpreter
python3 -m docker_watchdog

服务安装

要安装Docker Watchdog的启动服务,请确保已安装任何necessary dependencies,并以提升的权限运行以下命令:

docker-watchdog --install

下次主机系统启动时,后台服务将自动启动。

云服务器的安装脚本

为了简化云服务器的安装过程,scripts目录包含通用Docker容器主机平台的安装脚本。脚本自动安装docker watchdog及其依赖项,并注册docker watchdog启动服务。

为以下平台提供脚本:

  • windows服务器scripts/install_windows_server.ps1

    安装Chocolatey包管理器,使用chocolity安装python和docker watchdog,并注册docker watchdog启动服务。

    要使用此脚本,请在提升的powershell提示符下运行以下命令:

    Set-ExecutionPolicyBypass-ScopeProcess-Force;iex ((New-ObjectSystem.Net.WebClient).DownloadString('https://raw.githubusercontent.com/adamrehn/docker-watchdog/master/scripts/install_windows_server.ps1'))
  • debian-based linux发行版scripts/install_debian.sh

    安装python、ruby、pleserun和docker watchdog,并注册docker watchdog启动服务。

    要使用此脚本,请使用根特权运行以下命令:

    curl -fsSL 'https://raw.githubusercontent.com/adamrehn/docker-watchdog/master/scripts/install_debian.sh'| bash
    

配置

监视程序可以通过json配置文件或环境变量进行配置。这两种方法也可以一起使用,在这种情况下,配置文件中的值将优先于环境变量中的值。未指定值的任何设置都将回退到使用正常默认值。

json配置文件的位置基于操作系统和运行时环境:

  • 在windows下:%APPDATA%\docker-watchdog\config.json
  • 在MacOS和Linux下:
    • 如果以非根用户身份运行:$HOME/.config/docker-watchdog/config.json
    • 如果以根用户身份运行:/etc/docker-watchdog/config.json

可用的配置设置如下:

JSON KeyEnvironment VariableDefaultDescription
^{}^{}60Specifies the interval (in seconds) to sleep for between sampling runs.
^{}^{}600Specifies the period of inactivity (in seconds) required to consider the system idle.
^{}^{}0Specifies the billing granularity (in seconds) if the host is a cloud VM, or zero otherwise.
^{}^{}0.9Specifies the minimum percentage (0.0 to 1.0) of the current billing unit that must have elapsed to consider a shutdown to be cost-effective.

法律

版权所有©2019,亚当·雷恩。根据mit许可证授权,请参见文件LICENSE了解详细信息。

这个包的开发是由Deepdrive, Inc资助的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像