解决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 容器基础系统镜像打包

    详解Docker 容器基础系统镜像打包

    这篇文章主要介绍了详解Docker 容器基础系统镜像打包,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Docker Desktop安装本地Kubernetes集群的实现

    Docker Desktop安装本地Kubernetes集群的实现

    Kubernetes用于协调高度可用的计算机集群,本文主要介绍了Docker Desktop安装本地Kubernetes集群的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • CoreOS配置Docker镜像加速器的方法

    CoreOS配置Docker镜像加速器的方法

    本篇文章主要介绍了CoreOS配置Docker镜像加速器的方法,CoreOS下的Docker配置是通过flannel unit来实现的,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 使用Docker部署MySQL 5.7&8.0主从集群的方法步骤

    使用Docker部署MySQL 5.7&8.0主从集群的方法步骤

    这篇文章主要介绍了使用Docker部署MySQL 5.7&8.0主从集群的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • docker容器的几种存储详解

    docker容器的几种存储详解

    本文主要介绍了docker容器的几种存储方式,主要介绍了3种,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • springboot整合docker部署实现两种构建Docker镜像方式

    springboot整合docker部署实现两种构建Docker镜像方式

    这篇文章主要介绍了springboot整合docker部署实现两种构建Docker镜像方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 为Centos安装指定版本的Docker

    为Centos安装指定版本的Docker

    这篇文章介绍了为Centos安装指定版本Docker的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Docker部署Vue项目的项目实践

    Docker部署Vue项目的项目实践

    本文主要介绍了Docker部署Vue项目的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker 教程之基本概念(镜像,容器,仓库)详解

    Docker 教程之基本概念(镜像,容器,仓库)详解

    这篇文章主要介绍了Docker 教程之基本概念(镜像,容器,仓库)详解的相关资料,这里对Docker 的基本知识做一个介绍,需要的朋友可以参考下
    2016-12-12
  • Docker容器搭建本地私有仓库详情

    Docker容器搭建本地私有仓库详情

    这篇文章主要介绍了Docker容器搭建本地私有仓库详情,Docker 官方提供了一个搭建私有仓库的镜像 registry ,运行该镜像的容器并且对外暴露5000端口就ok了
    2022-08-08

最新评论