Docker

Docker 容器內的持久螢幕會話

  • July 16, 2019

我正在嘗試創建一個帶有執行一些腳本的螢幕會話的 Docker 容器。Dockerfile 包含

CMD screen -S session1 ./testLinux

當我以分離模式執行它時,它會立即關閉,說

Must be connected to a terminal.

如何在分離的 docker 容器中執行持久螢幕會話?

我可以用這個 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.

螢幕需要一個終端 (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/以供參考。

引用自:https://unix.stackexchange.com/questions/530342