Ubuntu Docker镜像文件持久化及docker attach容器连接问题排查
问题2:为什么docker attach无输出且无法进入bash?
这是因为docker attach是直接连接到容器的主进程(PID 1),而你运行ubuntu镜像时默认启动的bash进程,在未分配交互式终端的情况下,无法提供交互环境:
- 如果你用
sudo docker run ubuntu启动容器,默认是前台运行,但没有加-it参数的话,bash进程会因为缺少TTY(终端)而无法交互,所以attach进去后会卡住,没有任何输出。 - 即便容器显示“Up”状态,主进程也只是处于休眠状态,没有可交互的终端界面。
解决方法:
推荐使用docker exec命令进入容器,它会在容器内启动一个全新的交互式bash进程,比attach更灵活:
docker exec -it priceless_ramanujan bash
如果一定要用attach,下次启动容器时必须加上-it参数,分配终端和标准输入:
sudo docker run -it ubuntu
这样启动的容器,用docker attach就能正常进入bash交互界面了。
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

