运行node-exporter时Docker报错:路径/未设为共享或从属挂载
Windows 10 运行Node Exporter Docker镜像报错解决
错误原因
你遇到的报错是因为rslave是Linux特有的文件系统挂载传播选项,Windows的Docker环境(基于Hyper-V或WSL2虚拟机)不支持该选项,同时直接挂载主机根目录/的逻辑在Windows和Linux平台存在差异。
解决方案
方案1:修改Docker命令适配Windows环境
移除rslave选项,调整后的命令如下:
docker run -d --net="host" --pid="host" -v "/:/host:ro" quay.io/prometheus/node-exporter:latest --path.rootfs=/host
注意:此命令中容器访问的/host是Docker虚拟机的根目录,而非Windows主机的本地磁盘。若需监控Windows本地文件系统,可指定具体盘符挂载,比如挂载C盘:
docker run -d --net="host" --pid="host" -v "C:/:/host/c:ro" quay.io/prometheus/node-exporter:latest --path.rootfs=/host
方案2:通过WSL2发行版内部运行
如果你的Docker使用WSL2后端,直接进入WSL2的Linux发行版(如Ubuntu)执行原命令即可,WSL2的文件系统支持rslave挂载选项,能正常运行。
方案3:调整网络模式适配Windows端口访问
Windows环境下--net="host"模式仅指向Docker虚拟机网络,若需在Windows主机直接访问Node Exporter的9100端口,可改用端口映射模式,去掉--net="host":
docker run -d -p 9100:9100 -v "/:/host:ro" quay.io/prometheus/node-exporter:latest --path.rootfs=/host
内容的提问来源于stack exchange,提问作者Lakshay Rohilla
相关产品推荐
相关产品推荐

