跳转到主要内容

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

项目描述

Docker空闲看门狗

docker-watchdog Python包提供了一种后台服务,用于监视Docker容器主机的空闲时间,并在达到预定义的空闲阈值后自动关闭主机。类似于shutdown-if-idle包,预期的使用场景是自动关闭作为持续集成(CI)管道一部分按需启动的云虚拟机,尽管重点是Docker容器主机。

该包的主要功能包括

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

内容

安装

要求

docker-watchdog包需要以下内容

  • Python 3.5或更高版本
  • 在macOS和Linux下,需要安装pleaserun Ruby 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的启动服务,请确保已安装所有必需的依赖项,并以提升的权限运行以下命令

docker-watchdog --install

然后,在主机系统启动时,背景服务将自动启动。

云服务器的安装脚本

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

以下平台提供了脚本

  • Windows Server: scripts/install_windows_server.ps1

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

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

    Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/adamrehn/docker-watchdog/master/scripts/install_windows_server.ps1'))
    
  • 基于Debian的Linux发行版: scripts/install_debian.sh

    安装Python、Ruby、pleaserun和docker-watchdog,并注册docker-watchdog启动服务。

    要使用此脚本,请以root权限运行以下命令

    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下
    • 如果以非root用户运行: $HOME/.config/docker-watchdog/config.json
    • 如果以root用户运行: /etc/docker-watchdog/config.json

可用的配置设置如下

JSON键 环境变量 默认 描述
sleep DOCKER_WATCHDOG_SLEEP_INTERVAL 60 指定采样运行之间的睡眠间隔(以秒为单位)。
timeout DOCKER_WATCHDOG_IDLE_TIMEOUT 600 指定考虑系统空闲所需的不活动期(以秒为单位)。
billing DOCKER_WATCHDOG_BILLING_GRANULARITY 0 如果主机是云VM,指定计费粒度(以秒为单位),否则为0。
percentage DOCKER_WATCHDOG_EFFECTIVE_PERCENTAGE 0.9 指定必须已过期的当前计费单元的最小百分比(0.0到1.0),以考虑关闭是具有成本效益的。

法律

版权所有 © 2019, Adam Rehn。根据MIT许可协议授权,有关详细信息请参阅文件LICENSE

本软件包的开发得到了Deepdrive, Inc的支持。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有提供源代码分发文件。请参阅生成分发存档的教程

构建分发

docker_watchdog-0.0.5-py3-none-any.whl (10.8 kB 查看散列)

上传时间 Python 3

支持