OMD "Labs" 版本([***]
作者:Sven Nierlein,sven.nierlein at consol.de
原作者:Simon Meggle
当有新的OMD软件包可用时,OMD Labs构建系统会触发镜像构建:
以下分支会触发自动化构建:
每个镜像已包含一个"demo"站点。
在OMD Labs版中运行"demo"站点:
bash# Rocky 9 docker run -p 8443:443 consol/omd-labs-rocky # Debian 11 docker run -p 8443:443 consol/omd-labs-debian
使用Makefile操作本地构建的镜像:
bash# 运行本地镜像 make -f Makefile.omd-labs-rocky start # 构建"local/"镜像(不覆盖consol/镜像) make -f Makefile.omd-labs-rocky build # 仅启动bash make -f Makefile.omd-labs-rocky 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
注意"数据卷检查"部分。在此情况下,未使用主机挂载的数据卷。"start.sh"脚本会将所有.ORIG文件夹重命名为原始名称(当没有挂载卷时)。
更改默认站点名
可更改默认站点名"demo"。构建自定义镜像时设置SITENAME:
cd到包含Dockerfile的文件夹(如omd-labs-rocky)bashexport SITENAME=mynewsite; make -f Makefile.omd-labs-rocky build
此镜像的每个容器实例将启动"mynewsite"站点而非"demo"。
动态添加其他站点
若需动态设置站点名(无需重新构建整个镜像),可基于原始镜像创建包含其他OMD站点的镜像。创建自定义Dockerfile,以原始镜像为基础:
dockerfileFROM consol/omd-labs-rocky:nightly ...
通过设置变量NEW_SITENAME可更改自定义OMD镜像中的站点名:
bashexport NEW_SITENAME=anothersite
原始Dockerfile中的ONBUILD命令会在当前Dockerfile构建完成后执行。ONBUILD在任何从当前镜像派生的子镜像中执行,可视为父Dockerfile给子Dockerfile的指令。
主机挂载数据文件夹
容器停止后,所有监控数据(配置文件、RRD数据、InfluxDB、日志文件等)会丢失。为保持数据持久化,使用主机挂载卷。
以下命令:
bashmake -f Makefile.omd-labs-rocky startvol
启动容器并挂载三个卷:
./site/etc => $OMD_ROOT/etc.mount./site/local => $OMD_ROOT/local.mount./site/var => $OMD_ROOT/var.mount首次启动时,主机文件系统会创建这些文件夹。此时,start.sh通过lsyncd将内容从原始文件夹(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-rocky:nightly docker logs 91992828cc1dca7839cb2842933897b94329fe2c6b395c5ccb8b9fa056057679 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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务