Docker Swarm agent节点报invalid mount config错误无运行容器如何解决
核心问题定位
你遇到的错误invalid mount config for type "bind"为Docker bind挂载类通用报错,90%以上场景为宿主机上配置的挂载源路径不存在,svr-3节点服务运行正常说明该节点存在对应的挂载路径,svr-2节点缺少对应路径导致服务无法调度启动,因此执行docker ps -a看不到运行容器。
排查解决步骤
- 第一步:登录故障节点svr-2,检查挂载源目录是否存在
执行命令:
ls -ld /data/m64/
如果返回No such file or directory,执行以下命令创建目录,建议和svr-3节点的目录权限保持一致:
mkdir -p /data/m64/ # 可根据实际需求调整目录权限,示例为755 chmod 755 /data/m64/
- 第二步:在Swarm管理节点(svr-1)强制重启m64服务,触发重新调度
执行命令:
docker service update --force m64
- 第三步:验证修复结果
等待1分钟后,登录svr-2节点执行docker ps,确认m64容器是否正常启动;也可以在管理节点执行docker service ps m64查看服务任务的运行状态,确认svr-2节点的任务无报错。
可选排查项
如果执行上述步骤后问题仍未解决,可执行以下操作进一步定位:
- 在svr-2节点执行
journalctl -u docker.service --since "24h ago" | grep "invalid mount",查看完整的挂载错误日志,确认报错的挂载路径是否和m64服务配置一致 - 在管理节点执行
docker service inspect m64 | grep -A 10 Constraints,确认服务没有配置调度规则排除svr-2节点
内容的提问来源于stack exchange,提问作者user4948798
相关产品推荐
相关产品推荐

