Shell 自动从 docker 容器分离
Shell is detached automatically from docker container
我正在使用 docker 在 macOS Apple Silicon M1 上开发一些东西。 (MacMini)
我确实关注了一些事情。
docker pull
官方ubuntu/focal
- 创建图像
docker create -it --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal /bin/bash
- 创建容器并附加它
docker start -ia dev1
在此之后,我将此容器用于编码、运行 节点应用程序等。但是,当我将这个附加容器保持近 1 小时而没有任何输入时,它会自动分离并且我回到 macOS shell 提示符。
没有退出。如果命令 docker ps
,容器仍然存在。
并且如果我命令docker attach dev1
,我可以继续与容器shell交互。
不知道为什么会自动分离。我该如何预防?
虽然它并没有真正回答为什么和如何的问题,但感觉很期待评论。
如果你直接 运行 容器并使用 docker exec 附加到它,你会遇到同样的问题吗?
在第 2 步中,将 create
替换为 run
,将 -ti
替换为 -d
,将 运行 替换为分离,并将 /bin/bash
替换为tail -f /dev/null
所以你的进程 1 阻塞并且不会立即 return。
docker run -d --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal tail -f /dev/null
docker exec -ti dev1 bash
我正在使用 docker 在 macOS Apple Silicon M1 上开发一些东西。 (MacMini)
我确实关注了一些事情。
docker pull
官方ubuntu/focal- 创建图像
docker create -it --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal /bin/bash
- 创建容器并附加它
docker start -ia dev1
在此之后,我将此容器用于编码、运行 节点应用程序等。但是,当我将这个附加容器保持近 1 小时而没有任何输入时,它会自动分离并且我回到 macOS shell 提示符。
没有退出。如果命令 docker ps
,容器仍然存在。
并且如果我命令docker attach dev1
,我可以继续与容器shell交互。
不知道为什么会自动分离。我该如何预防?
虽然它并没有真正回答为什么和如何的问题,但感觉很期待评论。
如果你直接 运行 容器并使用 docker exec 附加到它,你会遇到同样的问题吗?
在第 2 步中,将 create
替换为 run
,将 -ti
替换为 -d
,将 运行 替换为分离,并将 /bin/bash
替换为tail -f /dev/null
所以你的进程 1 阻塞并且不会立即 return。
docker run -d --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal tail -f /dev/null
docker exec -ti dev1 bash