解决docker启动容器错误:docker:Error response from daemon:OCI runtime create failed

 更新时间:2024年05月11日 08:37:26   作者:阿亮_1024  
这篇文章主要介绍了解决docker启动容器错误:docker:Error response from daemon:OCI runtime create failed问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

用于搜索引擎抓取

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting “/mydata/elasticsearch/config/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.

使用docker run 运行容器一直报这个错误,其实原因很简单,如果你英语好一点就能够很快解决而不至于像我一样百度半天找不到想要的答案。

翻译原因

报错信息的前半部分出现了两个路径“/mydata/elasticsearch/config/elasticsearch.yml”和“/usr/share/elasticsearch/config/elasticsearch.yml”,前一个是我外部主机上的路径,后一个是docker安装的es里面的地址。

我的错误就是因为,我在外部创建/mydata/elasticsearch/config/elasticsearch.yml时,把elasticsearch.yml创建成了一个目录,挂载不上,将外部的elasticsearch.yml改成文件即可。不知道提示这个错误原因有没有其它可能。

温馨提示,如果你之前使用docker run命令来根据镜像新建容器,但是报错了,然后根据我上面说的操作了,再次重新run还是会出问题,因为你之前,docker run虽然报错了,容器没有启动起来,但是容器已经新建了,可以用docker ps -a查看,这时有两种处理方式

  • 使用命令 docker rm 容器id,删除之前建的容器,然后在重新run
  • 使用命令 docker start 容器id,启动你之前run报错建的容器。

后续连带错误

将上面的错误解决了之后,我使用docker run命令(已经删除了原来的容器),启动了es,如下所示

重新使用docker run

但是当我使用docker ps 查看时,并没有es,使用docker ps -a能看到刚刚创建的容器。

容器没有被启动

现在新问题变成了:使用docker run命令没有报错,但是容器并没有被启动。

我之前一直以为docker查看容器日志,只能查看已经启动的容器的日志,但是这次我发现,未启动状态的容器,也是能查看日志的。

使用命令:

docker logs 容器名

查看日志

哦豁,现在又有新问题了:

java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes。

这个路径提示的是 容器里面,也就是es内的路径,但其实不是。

问题是提示的这个路径所挂载的外部路径,权限不足。

我直接给最高权限777

在这里插入图片描述

OK,至此问题完美解决

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker-Compose搭建Spark集群的实现方法

    Docker-Compose搭建Spark集群的实现方法

    本文主要介绍了Docker-Compose搭建Spark集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • docker搭建Hadoop CDH高可用集群实现

    docker搭建Hadoop CDH高可用集群实现

    本文主要介绍了docker搭建Hadoop CDH高可用集群实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 如何使用Docker部署最新版JupyterHub

    如何使用Docker部署最新版JupyterHub

    本文介绍了如何使用Docker部署最新版JupyterHub,包括拉取镜像、启动容器、生成配置文件、安装依赖、创建用户、更改权限、更新配置文件以及访问验证等步骤,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • docker-compose启动springboot项目连接mysql问题

    docker-compose启动springboot项目连接mysql问题

    这篇文章主要介绍了docker-compose启动springboot项目连接mysql问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker容器中启用SSH服务的方法步骤

    Docker容器中启用SSH服务的方法步骤

    本文主要介绍了Docker容器中启用SSH服务的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • docker拷贝文件到主机及导入导出容器及运行导出容器方式

    docker拷贝文件到主机及导入导出容器及运行导出容器方式

    这篇文章主要介绍了docker拷贝文件到主机及导入导出容器及运行导出容器方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 安装Docker以及常见报错解决办法

    安装Docker以及常见报错解决办法

    Docker是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,以便在任何支持Docker的平台上运行,这篇文章主要介绍了安装Docker以及常见报错解决办法的相关资料,需要的朋友可以参考下
    2025-02-02
  • Harbor搭建Docker私有仓库的实现方法

    Harbor搭建Docker私有仓库的实现方法

    Harbor是一个由CNCF托管的开源的Docker镜像仓库管理工具,我们可以通过它快速的建立起自己的私有仓库,本文就详细的介绍了Harbor搭建Docker私有仓库的实现方法,感兴趣的可以了解一下
    2021-06-06
  • docker私有仓库Harbor配置

    docker私有仓库Harbor配置

    本文主要介绍了在openEuler或rockylinux上配置docker私有仓库Harbor,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • docker-compose实现wireshark对linux主机进行抓包

    docker-compose实现wireshark对linux主机进行抓包

    这篇文章主要为大家介绍了docker-compose实现wireshark对linux主机进行抓包脚本示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论