
gregewing/apcupsd本镜像基于Ubuntu系统,内置apcupsd服务,用于管理和监控USB连接的UPS设备。它能够在长时间停电时优雅地关闭主机,无需对主机进行任何自定义配置,不需要在主机上设置cron任务或触发文件和脚本,所有操作都在容器内部完成。
privileged模式运行(主机关闭功能除外)--device指令仅附加特定USB设备到容器apcupsd/dev/usb/hiddev1)建议先创建一个卷来持久化配置文件,以便在容器重建和更新时保留配置:
bashdocker volume create apcupsd_config
卷为空时,容器创建时会自动填充apcupsd的默认配置文件和脚本。这些文件不会在容器删除和重新创建时被覆盖,因此可以在此处进行自定义配置。
bashdocker run -d --privileged \ --name=apcupsd \ -e TZ=Europe/London \ --device=/dev/usb/hiddev1 \ --restart unless-stopped \ -p=3551:3551 \ -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \ -v apcupsd_config:/etc/apcupsd \ gregewing/apcupsd:latest
yamlversion: '3.7' services: apcupsd: image: gregewing/apcupsd:latest container_name: apcupsd-stack devices: - /dev/usb/hiddev0 ports: - 3551:3551 environment: # 删除或注释掉不需要更改的环境变量 - UPSNAME=${UPSNAME} # 将显示在apcupsd-cgi详情中 - UPSCABLE=${UPSCABLE} # 默认值:usb - UPSTYPE=${UPSTYPE} # 默认值:usb - DEVICE=${DEVICE} # 默认值:空 - NETSERVER=${NETSERVER} # 默认值:on - NISIP=${NISIP} # 默认值:0.0.0.0 - TZ=${TZ} # 默认值:Europe/London volumes: - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket - /etc/apcupsd restart: unless-stopped
| 参数 | 说明 |
|---|---|
--device=/dev/usb/hiddevX | UPS USB设备路径,需根据实际情况调整 |
-v apcupsd_config:/etc/apcupsd | 挂载配置文件卷 |
-p=3551:3551 | 暴露apcupsd监控端口 |
| 参数 | 说明 |
|---|---|
--privileged | 特权模式,仅在需要关闭主机时使用 |
-e TZ=时区 | 设置时区,如Europe/London |
-v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket | 挂载dbus套接字,用于触发系统关闭 |
--restart unless-stopped | 设置容器重启策略 |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
UPSNAME | - | UPS名称,将显示在apcupsd-cgi详情中 |
UPSCABLE | usb | UPS电缆类型 |
UPSTYPE | usb | UPS类型 |
DEVICE | 空 | 设备路径 |
NETSERVER | on | 是否启用网络服务器 |
NISIP | 0.0.0.0 | 网络服务器绑定IP |
TZ | Europe/London | 时区设置 |
配置文件位于卷apcupsd_config中,路径为/etc/apcupsd/apcupsd.conf。可以通过以下方式修改:
进入容器内部修改:
bashdocker exec -it apcupsd /bin/bash vi /etc/apcupsd/apcupsd.conf
从主机修改(需知道卷在主机上的实际路径)
修改后需重启容器使配置生效:
bashdocker restart apcupsd
usb-devices命令识别UPS设备类型usbhid设备/dev/usb/目录下,如/dev/usb/hiddev0或/dev/usb/hiddev1可以通过在容器内运行apcaccess命令测试UPS连接状态:
bashdocker exec -it apcupsd apcaccess
成功连接时输出会包含详细的UPS状态信息,与连接失败时有明显区别。
可以通过以下命令测试主机关闭功能:
bashdocker exec -it apcupsd /etc/apcupsd/apccontrol doshutdown
此命令应能使主机优雅关闭。该功能已在Ubuntu 16.04和18.04主机上测试通过。
apcupsd软件采用网络信息服务器(NIS)模型在主机之间共享信息。未直接连接UPS的远程主机可以定期轮询直接连接UPS的apcupsd实例。建议将未直接连接UPS的主机的关闭阈值设置得比直接连接UPS的主机稍高,以便远程主机能够在UPS连接主机不可用之前关闭。
有关apcupsd的更多信息,请参阅官方手册:APC UPS Daemon User Manual




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务