为什么使用docker exec -it 容器名 /bin/bash无法进入容器,而使用docker exec -it 容器名 /bin/sh可以进入容器
时间: 2023-10-29 17:27:00 浏览: 204
解决docker CMD/ENTRYPOINT执行sh脚本报: not found/run.sh:
在Docker容器中,/bin/bash和/bin/sh都是shell程序,但是它们有所不同。/bin/bash是Bourne-Again shell的缩写,是一个功能更加强大的shell;而/bin/sh是Bourne shell的缩写,是一个更加轻量级的shell。
在一些Docker镜像中,可能没有安装/bin/bash程序,这个时候使用docker exec -it 容器名 /bin/bash命令会出现无法进入容器的情况。此时,可以使用/bin/sh来代替/bin/bash,执行docker exec -it 容器名 /bin/sh命令可以成功进入容器。
需要注意的是,如果你在容器中使用了/bin/bash,而容器中并没有安装bash程序,那么同样也会无法进入容器。因此,在进入容器时,要根据实际情况选择合适的shell程序。
阅读全文