Jac*_*ern 2 bash shell docker dockerfile
我正在尝试使用 bash shell(而不是 sh shell)以交互模式连接到正在运行的容器或启动新容器。我想运行:
docker exec -it <container_name> /bin/bash
Run Code Online (Sandbox Code Playgroud)
或者
docker run -it <container_name> <image_name>
Run Code Online (Sandbox Code Playgroud)
或者
docker run -it <container_name> <image_name> /bin/bash
Run Code Online (Sandbox Code Playgroud)
并获得交互式 bash shell。
根据我尝试过的这篇文章
SHELL ["/bin/bash", "-c"]
Run Code Online (Sandbox Code Playgroud)
RUN ["/bin/bash", "-c", "echo I am now using bash!"]
Run Code Online (Sandbox Code Playgroud)
但是每次我尝试以交互模式运行容器(docker run -it或附加到正在运行的容器(docker exec -it))时,我都会进入shshell。
如何获得在 docker 容器内运行的交互式 bash shell?
FROM ubuntu
SHELL ["/bin/bash", "-c"]
Run Code Online (Sandbox Code Playgroud)
事实上,您正在使用以下命令运行交互式 bash:
docker container run -it ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)
当您在 docker 容器中运行 bash 时,该 shell 位于容器中。因此,它不会具有来自容器外部的命令历史记录,该历史记录保存在主机文件系统上。它也不会出现提示,PS1变量不会自动导出到容器的环境中。而且它不会.bashrc从您的主机获得您的配置,因为它不在容器内。相反,您会从最小的 ubuntu 主机获得开箱即用的 bash shell。
| 归档时间: |
|
| 查看次数: |
10971 次 |
| 最近记录: |