일부 스크립트를 실행하는 스크린 세션을 사용하여 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