解决进入Docker容器报错-OCI runtime exec failed: exec failed: unable to start container process
·
一、问题
1.1 进入容器
//进入容器语法
docker exec -it 容器标识 /bin/bash
注:容器标识为容器名(Names)或容器ID(Container ID)或容器ID(Container ID)前几位
//进入容器boot3-01-demo
//这里容器标识使用Names,即boot3-01-demo
docker exec -it boot3-01-demo /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
boot3-01-demo: boot3-01-demo 容器的Names。
/bin/bash:放在容器后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
1.2 实际操作报错
Welcome to Alibaba Cloud Elastic Compute Service !
[root@freedom ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94dfd57581c3 880f7a72ff56 "java -Xmx128m -Djav…" 19 hours ago Up 19 hours boot3-01-demo
[root@freedom ~]# docker exec -it boot3-01-demo /bin/bash
OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
这里报错
:
OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
二、解决
2.1 解决
一般情况下,进入容器使用的都是docker exec -it 容器标识 /bin/bash
,这里需要使用docker exec -it 容器标识 /bin/sh
。
//进入容器语法
docker exec -it 容器标识 /bin/sh
注:容器标识为容器名(Names)或容器ID(Container ID)或容器ID(Container ID)前几位
//进入容器boot3-01-demo
//这里容器标识使用Names,即boot3-01-demo
docker exec -it boot3-01-demo /bin/sh
截图如下
:
2.2 /bin/bash 与 /bin/sh
/bin
是个快捷方式:
/bin/bash
:
/bin/sh
:
2.3 docker attach
补充-另一种进入容器的命令:
docker attach 容器标识
注意:
//使用docker attach命令来进入容器,如果从这个容器退出,会导致容器的停止。
docker attach 容器标识
//使用docker exec -it 容器标识 /bin/bash 或者 docker exec -it 容器标识 /bin/sh命令来进入容器,如果从这个容器退出,就不会导致容器的停止。
注:容器标识为容器名(Names)或容器ID(Container ID)或容器ID(Container ID)前几位
所以推荐使用 docker exec -it
这种方式,进入容器。
三、参考
详细过程与深入学习
,可以参考下面几篇博客
Docker报错:OCI runtime exec failed: exec failed: container_linux.go:380: starting container process详解
Shell编程:/bin/bash和/bin/sh的区别
Shell编程: shell脚本5种执行方式 | 脚本不同的执行方法和区别
Docker 容器使用
更多推荐
已为社区贡献10条内容
所有评论(0)