这个错误怎么解决‘docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:75: mounting "/usr/local/docker_elasticsearch/elasticsearch.yml" to rootfs at "/usr/share/elasticsearch/config/elasticsearch.yml" caused: mount through procfd: 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.’
时间: 2023-07-15 20:10:09 浏览: 377
Docker源码分析(十):Docker镜像下载
这个错误提示是由于在启动 Docker 容器时,挂载的文件路径有误导致的。
具体来说,这个错误提示中提到了一个文件路径 `"/usr/local/docker_elasticsearch/elasticsearch.yml"`,它被挂载到了容器中的 `"/usr/share/elasticsearch/config/elasticsearch.yml"`,但是在挂载时出现了问题,导致容器无法正常启动。
首先,你需要确认一下 `/usr/local/docker_elasticsearch/elasticsearch.yml` 这个路径是否存在,并且该路径下是否有 `elasticsearch.yml` 这个文件。如果该文件不存在,则需要先创建该文件。
其次,你需要检查容器启动命令中关于挂载的部分是否正确。在这个错误提示中,可能是因为在挂载时将一个文件挂载到了一个目录上,或者是将一个目录挂载到了一个文件上,导致挂载失败。因此,你需要确认一下挂载的目标路径是否正确,以及该路径是否存在。
最后,你可以尝试在启动容器时添加 `--privileged` 参数,这会给予容器更高的权限,可能能够解决这个问题。不过,建议你在使用 `--privileged` 参数时要格外小心,以免给容器带来安全风险。
阅读全文