执行空闲容器主机自动关闭的服务
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 Key | Environment Variable | Default | Description |
---|---|---|---|
^{ | ^{ | 60 | Specifies the interval (in seconds) to sleep for between sampling runs. |
^{ | ^{ | 600 | Specifies the period of inactivity (in seconds) required to consider the system idle. |
^{ | ^{ | 0 | Specifies the billing granularity (in seconds) if the host is a cloud VM, or zero otherwise. |
^{ | ^{ | 0.9 | Specifies 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资助的。