Docker 容器内的持久屏幕会话

Docker 容器内的持久屏幕会话

我正在尝试创建一个 Docker 容器,其中屏幕会话运行一些脚本。 Dockerfile 包含

CMD screen -S session1 ./testLinux

当我以分离模式运行它时,它立即关闭,说

Must be connected to a terminal.

如何在分离的 docker 容器内运行持久屏幕会话?

答案1

我可以用这个 Dockerfile 重现这个:

FROM centos:latest
RUN yum -y install screen && rm -rf /var/cache/yum
CMD screen -S session1 sleep 99999

当我运行它时docker run <imageID>我得到Must be connected to a terminal.

Screen 需要终端 (tty) 才能运行。解决方案是-tid从帮助中添加到运行标志:

 -d, --detach                         Run container in background and print container ID
 -i, --interactive                    Keep STDIN open even if not attached
 -t, --tty                            Allocate a pseudo-TTY

https://docs.docker.com/engine/reference/run/以供参考。

相关内容