[英]Docker how to get shell on a container that exits fast
我有一个容器问题,导致它立即退出。 我通常在有问题的容器上运行此命令以在其中获取 shell 并调查问题。
docker exec -it <container_name> /bin/bash
但是,如果容器几乎立即失败,这将不起作用。
如何轻松进入退出的容器以便找到问题?
第一种方式:
docker run -it <container_name> sleep 20200202
然后尝试
docker exec -it <container_name> bash
如果您定义了任何入口点:
docker run -it --entrypoint "" <container_name> bash
您还可以使用其他方法将您的命令输出重定向到/dev/null
...因此stdout
永远不会读取退出。 但是,上述方法非常简单,也可以使用 compose 文件进行复制。
注意:如果您仍想运行<someCommandWhichExists>
,只需在打开的 bash 终端上运行它。
第二种方式:
假设xcontainerid
容器已经从 docker docker ps -a
的输出中退出。
如果你想进入这个特定的容器,只需点击:
docker commit xcontainerid ximagename
docker run -it --entrypoint "" ximagename bash
此ximagename
将具有与您退出的xcontainerid
完全相同的环境。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.