Docker 容器重启失败: 无法挂载配置文件 my.cnf
这是一个 Docker 容器重启失败的错误信息。错误原因是无法创建 shim 任务,导致 OCI 运行时创建失败。在容器初始化期间,尝试将'/data/src/mysql/config/my.cnf' 挂载到'/etc/my.cnf' 时出现了问题。错误提示说这可能是因为在文件和目录之间尝试挂载,建议检查指定的主机路径是否存在,并且是预期的类型。
错误信息:
Error response from daemon: Cannot restart container 8cf6697a82e4178d056da4ba08889a9bc60e8aa60df0dba64ba5cc878fbb192c: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/data/src/mysql/config/my.cnf" to rootfs at "/etc/my.cnf": mount /data/src/mysql/config/my.cnf:/etc/my.cnf (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
问题原因:
该错误信息表明在容器初始化阶段,尝试将主机路径 /data/src/mysql/config/my.cnf 挂载到容器内部的 /etc/my.cnf 时出现了问题。具体原因可能是:
/data/src/mysql/config/my.cnf不是一个目录,而是一个文件。*/etc/my.cnf是一个目录。
解决方案:
- 检查主机路径
/data/src/mysql/config/my.cnf是否存在,以及它是否是目录。如果它不是一个目录,则需要将其改为目录或将my.cnf文件放入该目录中。2. 检查容器内部的/etc/my.cnf是否为一个文件。如果不是,则需要将其创建为一个文件。
示例:
假设 /data/src/mysql/config 是一个目录,而 /data/src/mysql/config/my.cnf 是一个文件,则可以将 Dockerfile 中的挂载部分修改为:
VOLUME /etc/my.cnf
COPY ./data/src/mysql/config/my.cnf /etc/my.cnf
注意:
- 确保主机路径和容器内部路径的类型一致。* 如果仍然无法解决问题,请检查 Docker 配置文件和容器启动命令,确保它们正确设置。
原文地址: https://www.cveoy.top/t/topic/lCC2 著作权归作者所有。请勿转载和采集!