ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-15 22:01:18  阅读:231  来源: 互联网

标签:OCI 容器 daemon run elasticsearch 报错 docker yml


用于搜索引擎抓取

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,至此问题完美解决

转自:www.dianjilingqu.com

标签:OCI,容器,daemon,run,elasticsearch,报错,docker,yml
来源: https://www.cnblogs.com/yuanyuzhou/p/16151134.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有