一部のスクリプトを実行するスクリーンセッションを使用して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