Docker报错:OCI runtime exec failed: exec failed: container_linux.go:380: starting container process的解决方法

 更新时间:2022年07月19日 15:44:47   作者:血煞长虹  
这篇文章主要给大家介绍了关于Docker报错:OCI runtime exec failed: exec failed: container_linux.go:380: starting container process的解决方法,文中通过图文介绍的非常详细,需要的朋友可以参考下

详细信息

[root@centOS7 ~]# docker exec -it 3cae7605916d /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

老规矩:先上答案 把脚本类型 /bin/bash,尝试换为 /bin/sh 试一下,如果你想对两种shell的区别有深入了解,点击这里

注意:

如果你在Dockerfile中引用了自定义脚本,比如:entrypoint: ./entrypoint.sh,如果没有单独给该脚本通过chmod +x ./entrypoint.sh 添加执行权限,也可能会报这个错误。

前言

在docker学习中,大部分容器进入的脚本都是/bin/bash,比如tomcat,所以不假思索的认为其他容器进入方式的脚本类型也是/bin/bash,然而这是一个误区。

解析步骤 

1.首先,了解一些脚本的类型

[root@centOS7 ~]cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@centOS7 ~]# 

本机脚本解释器类型有4种。最常见的是前两种 (usr)/bin/sh和(usr)/bin/bash,还有一些不是很常见的脚本类型:ash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。

2.进入Tomcat容器内部,查Tomcat启动脚本解释器类型

docker exec -it tomcat /bin/bash
ls 
cd bin && ls
cat cat startup.sh

 不难发现,它的启动脚本解释器类型是/usr/bin/bash

3.进入Nginx容器内部,查Nginx启动脚本解释器类型

exit #退出tomcat容器
docker ps #查看正在运行的容器列表
docker exec -it 3cae7605916d /bin/sh  #进入nginx容器
cd /etc/init.d && ls
cat nginx  #并不是想要/bin/sh结果

发现,首行并不是想要的结果/bin/bash,不放弃继续找 

find / -name nginx -type f   #仅查找nginx启动文件
find / -name nginx #过滤出目录下所有的nginx

最后的最后,怎么找nginx的启动脚本,期望能找到首行的解释器是/bin/sh,但是事与愿违,不是乱码就是/sbin/openrc-run。

总结

经过各种求教,得到的答案,nginx:alpine精简版,在做镜像的时候,只装了sh,没有装bash,所以用不了bash。shell类型有很多种,但是sh类型的shell是最基础的,所以大部分镜像都支持。这就不难理解为什么docker exec -it  可以使用 /bin/sh进入镜像内部了。

docker exec使用小技巧:后面的/bin/或者/usr/bin/可以省略掉,直接写sh 或者 bash。

到此这篇关于Docker报错:OCI runtime exec failed: exec failed: container_linux.go:380: starting container process解决的文章就介绍到这了,更多相关Docker报错:OCI runtime exec failed内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一次docker错误的耗时排查过程记录

    一次docker错误的耗时排查过程记录

    这篇文章主要给大家介绍了一次docker错误的耗时排查过程记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 浅谈Docker安全机制内核安全与容器之间的网络安全

    浅谈Docker安全机制内核安全与容器之间的网络安全

    这篇文章主要介绍了Docker安全机制内核安全与容器之间的网络安全,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • 解决docker报错Encountered errors while bringing up the project实测有效

    解决docker报错Encountered errors while bringing&n

    这篇文章主要介绍了解决docker报错Encountered errors while bringing up the project实测有效!具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Docker Compose在不同环境的多种安装方式

    Docker Compose在不同环境的多种安装方式

    这篇文章主要介绍了Docker Compose在不同环境的多种安装方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • docker镜像管理命令详解

    docker镜像管理命令详解

    这篇文章主要介绍了docker镜像管理命令,我们也可以使用命令来搜索镜像,比如我们需要一个tomcat的镜像来作为我们的web服务,我们可以通过 docker search 命令搜索tomcat来寻找适合我们的镜像,本文给大家介绍的非常详细,需要的朋友参考下吧
    2022-07-07
  • Docker容器数据卷的基本操作

    Docker容器数据卷的基本操作

    为了能保存数据在docker中我们使用卷,本文主要介绍了Docker容器数据卷的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Node.js服务Docker容器化应用实践小结

    Node.js服务Docker容器化应用实践小结

    这篇文章主要介绍了Node.js服务Docker容器化应用实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • DockerCE之执行docker info出现两条警告信息及解决方案

    DockerCE之执行docker info出现两条警告信息及解决方案

    这篇文章主要介绍了DockerCE之执行docker info出现两条警告信息及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 滚动 docker 中的 nginx 日志思路详解

    滚动 docker 中的 nginx 日志思路详解

    Nginx 自己没有处理日志的滚动问题,本文笔者介绍如何滚动运行在 docker 中的 nginx 日志文件,感兴趣的朋友一起看看吧
    2018-08-08
  • 解决docker数据文件过大导致根磁盘满的问题

    解决docker数据文件过大导致根磁盘满的问题

    本篇文章主要介绍了解决docker数据文件过大导致根磁盘满的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04

最新评论