
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OMD "Labs"版([***]
作者:Sven Nierlein (sven.nierlein at consol.de)、Simon Meggle
当OMD有新包可用时,OMD Labs构建系统会触发镜像构建:
以下分支会触发自动化构建:
每个镜像已包含一个"demo"站点。
在OMD Labs版中运行"demo"站点:
bash# Centos 8 docker run -p 8443:443 consol/omd-labs-centos # Ubuntu 18.04 docker run -p 8443:443 consol/omd-labs-ubuntu # Debian 10 docker run -p 8443:443 consol/omd-labs-debian
使用Makefile操作本地构建的镜像:
bash# 运行本地镜像 make -f Makefile.omd-labs-centos start # 构建"local/"镜像(不覆盖consol/镜像) make -f Makefile.omd-labs-centos build # 仅启动bash make -f Makefile.omd-labs-centos bash
容器会记录启动过程:
Config and start OMD site: demo -------------------------------------- Checking for volume mounts... -------------------------------------- * local/: [No Volume] * etc/: [No Volume] * var/: [No Volume] Checking for Ansible drop-in... -------------------------------------- Nothing to do (/root/ansible_dropin/playbook.yml not found). omd-labs: Starting site demo... -------------------------------------- Preparing tmp directory /omd/sites/demo/tmp...Starting rrdcached...OK Starting npcd...OK Starting naemon...OK Starting dedicated Apache for site demo...OK Initializing Crontab...OK OK
注意"Data volume check"部分。若未使用主机挂载数据卷,"start.sh"脚本会将所有.ORIG文件夹重命名为原始名称。
修改默认站点名
默认站点名"demo"可修改。构建自定义镜像时设置SITENAME:
omd-labs-centos)bashexport SITENAME=mynewsite; make -f Makefile.omd-labs-centos build
此镜像的每个容器实例将启动"mynewsite"站点而非"demo"。
动态添加其他站点
若需动态设置站点名(无需重新构建整个镜像),可基于原始镜像创建包含其他OMD站点的自定义镜像。创建自定义Dockerfile:
dockerfileFROM consol/omd-labs-centos:nightly ...
通过设置环境变量NEW_SITENAME修改自定义OMD镜像中的站点名:
bashexport NEW_SITENAME=anothersite
原始Dockerfile中的ONBUILD命令会在当前Dockerfile构建完成后执行,适用于从当前镜像派生的任何子镜像。
主机挂载数据文件夹
容器停止后,所有监控数据(配置文件、RRD数据、InfluxDB、日志等)会丢失。为保持数据持久化,使用主机挂载卷。
以下命令:
bashmake -f Makefile.omd-labs-centos startvol
启动容器并挂载三个卷:
./site/etc => $OMD_ROOT/etc.mount./site/local => $OMD_ROOT/local.mount./site/var => $OMD_ROOT/var.mount首次启动时,主机文件系统会创建这些文件夹。此时start.sh通过lsycnd将内容从原始文件夹(etc、local、var)同步到卷(etc.mount、local.mount、var.mount):
$OMD_ROOT/etc => $OMD_ROOT/etc.mount$OMD_ROOT/local => $OMD_ROOT/local.mount$OMD_ROOT/var => $OMD_ROOT/var.mountConfig and start OMD site: demo -------------------------------------- Checking for volume mounts... -------------------------------------- * local/: [EXTERNAL Volume] at /opt/omd/sites/demo/local.mount * mounted volume is writable => local.mount is empty; initial sync from local local ... * writing the lsyncd config for local.mount... * etc/: [EXTERNAL Volume] at /opt/omd/sites/demo/etc.mount * mounted volume is writable => etc.mount is empty; initial sync from local etc ... * writing the lsyncd config for etc.mount... * var/: [EXTERNAL Volume] at /opt/omd/sites/demo/var.mount * mounted volume is writable => var.mount is empty; initial sync from local var ... * writing the lsyncd config for var.mount... lsyncd: Starting lsyncd ... -------------------------------------- 16:38:44 Normal: --- Startup, daemonizing --- 16:38:44 Normal: --- Startup, daemonizing --- Checking for Ansible drop-in... -------------------------------------- Nothing to do (/root/ansible_dropin/playbook.yml not found). omd-labs: Starting site demo... -------------------------------------- Preparing tmp directory /omd/sites/demo/tmp...Starting rrdcached...OK Starting npcd...OK Starting naemon...OK Starting dedicated Apache for site demo...OK Initializing Crontab...OK OK
后续启动时,文件夹非空,将正常使用。
检查挂载点可用空间
OMD启动前,会检查三个挂载点(etc、local、var)的可用磁盘空间,确保容器可存储数据。阈值可通过docker run命令中的环境变量设置。若任何挂载点空间不足,启动脚本会失败。在OpenShift等容器编排平台中,部署配置应确保仅在新Pod正常启动后关闭旧Pod。
bashdocker run -d -p 8443:443 \ -v $(pwd)/site/local:/omd/sites/demo/local.mount \ -v $(pwd)/site/etc:/omd/sites/demo/etc.mount \ -v $(pwd)/site/var:/omd/sites/demo/var.mount \ -e VOL_VAR_MB_MIN=700000 \ -e VOL_ETC_MB_MIN=500 \ -e VOL_LOCAL_MB_MIN=6000 \ consol/omd-labs-centos:nightly
日志输出示例:
Config and start OMD site: demo -------------------------------------- Checking for volume mounts... -------------------------------------- * local/: [EXTERNAL Volume] at /opt/omd/sites/demo/local.mount * OK: Free space on /opt/omd/sites/demo/local.mount is 499826MB (required: 6000MB) * OK: mounted volume is writable <= Volume contains data; sync into local local ... * writing the lsyncd config for local.mount... * etc/: [EXTERNAL Volume] at /opt/omd/sites/demo/etc.mount * OK: Free space on /opt/omd/sites/demo/etc.mount is 499825MB (required: 500MB) * OK: mounted volume is writable <= Volume contains data; sync into local etc ... * writing the lsyncd config for etc.mount... * var/: [EXTERNAL Volume] at /opt/omd/sites/demo/var.mount * ERROR: Mounted volume has only 499825MB left (required: 700000MB, set by VOL_VAR_MB_MIN). no crontab for demo Removing Crontab...Stopping Nagflux.... Not running. Stopping dedicated Apache for site demo...(not running)...OK Stopping naemon...not running...OK Stopping Grafana.... Not running. Stopping influxdb.... Not running.
使用数据卷启动OMD-Labs
测试是否正常工作,可通过以下命令启动容器:
bashmake startvol
此命令启动带有三个数据卷的容器。容器写入这三个文件夹的所有内容会同步到持久文件系统。(make startvol是便捷启动方式,在Kubernetes/OpenShift中无需使用。)
OMD-Labs支持完整Ansible功能,可在容器实例启动时进行修改。工作原理如下:
默认情况下,OMD-labs容器通过CMD /root/start.sh启动。该脚本:
$ANSIBLE_DROPIN(默认:/root/ansible_dropin,可通过环境变量修改)中是否存在playbook.yml。若存在,执行该playbook。可在playbook.yml中放置单个任务或包含Ansible角色(复杂度较高时建议使用单独镜像)。将包含有效playbook的文件夹挂载到容器:
bashdocker run -it -p 8443:443 -v $(pwd)/my_ansible_dropin:/root/ansible_drop consol/omd-labs-debian
启动容器时,OMD会为omdadmin用户创建随机默认密码。处理方式如下:
playbook.yml:
yaml--- - hosts: all tasks: - shell: sudo su - demo -c "set_admin_password omd"
如需查看Ansible详细输出以调试角色,可调整环境变量ANSIBLE_VERBOSITY(如设为3):
bashdocker run -it -p 8443:443 -e ANSIBLE_VERBOSITY=3 -v $(pwd)/my_ansible_dropin:/root/ansible_drop consol/omd-labs-debian
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务