本镜像基于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 Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429