想修改docker 容器里面的文件,使用exec命令的时候莫名的进不去。出现报错!

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused “exec: "bash": executable file not found in $PATH”: unknown

运行环境 Runtime environment

1
2
3
操作系统 : Ubuntu18.04  
IDE: JetBrains Pycharm 2019.2.4 x64
Python: 3.6.9

症状

查询当前docker进程,用来查看容器ID

docker ps

exec 命令进入容器内部进行修改

docker exec -it 容器ID /bin/bash

发生报错

1
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown

解决办法

很多镜像底层系统用的精简版的可能没有bash,换成sh。
就算精简版的docker镜像一般也会有sh,而bash不一定会有。

docker exec -it 容器ID sh

总结

运行exec命令的时候记得加上容器ID别写漏了。
命令最后一个bash参数可以在做一些尝试:

/usr/bin/bash

/bin/bash

bash

sh

总会有成功的,因为封装docker的人你并不知道他是怎么封装的,所以就猜呗。