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.

화면을 실행하려면 터미널(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/참고용.

관련 정보