You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 7.9.2009的Plesk环境下Docker容器启动报错问题咨询

运行环境
  • Plesk Obsidian Version 18.0.35
  • CentOS Linux 7.9.2009
  • Docker version 20.10.6, build 370c289
故障详情

原有MySQL Docker容器停止后无法启动,在Plesk界面启动容器时报错如下:

Error: {"message":"OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting \"/var/lib/docker/containers/23385a006794b8bd06cb112d5a9c8401d6bb78370e6e7e6adea8182b2205c624/resolv.conf\" to rootfs at \"/etc/resolv.conf\" caused: mount through procfd: possibly malicious path detected -- refusing to operate on /etc/resolv.conf: unknown"}

部署其他容器也出现相同报错,删除原有容器、重装Plesk Docker组件后问题仍存在。docker info命令输出截图如下:
docker info输出截图

故障根因

该报错是Docker 20.10.6版本内置的runc组件的路径校验逻辑bug导致,当宿主机/etc/resolv.conf为软链接时,runc会误判为恶意路径拒绝挂载。CentOS 7环境下如果启用了NetworkManager、或Plesk修改过网络配置,大概率会把/etc/resolv.conf设置为指向其他路径的软链接,触发该bug。

解决方案

按优先级尝试以下操作:

  1. 将resolv.conf改为普通文件
    执行以下命令替换软链接为实际文件:
cp -L /etc/resolv.conf /etc/resolv.conf.tmp
rm -f /etc/resolv.conf
mv /etc/resolv.conf.tmp /etc/resolv.conf

执行完成后重启Docker服务:
systemctl restart docker
重新尝试启动容器,90%以上的场景可通过该方法解决。

  1. 升级Docker版本
    如果方法1无效,将Docker升级到20.10.10及以上稳定版本,该版本已修复runc的路径校验bug。Plesk环境下可直接通过Plesk组件更新功能升级Docker,或手动添加Docker官方源安装新版。

  2. 手动指定容器DNS规避挂载
    如果暂时无法升级Docker,可在容器启动参数中手动添加DNS配置,避免Docker自动挂载宿主机resolv.conf:
    在启动命令中添加--dns 8.8.8.8 --dns 114.114.114.114参数,Plesk界面可在容器的「额外启动参数」配置项中添加上述内容。

内容的提问来源于stack exchange,提问作者Anatol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 07:06:06