在 LXD 管理的容器内启动屏幕会话

Jon*_* Y. 6 gnu-screen lxc lxd

我想screen在 LXD 管理的容器内启动一个会话,以便我可以分离正在运行的进程,并且可能在将来我想检查它们的状态时重新附加。

我试图附加到正在运行的容器

$ lxc exec my-ubuntu -- /bin/bash
Run Code Online (Sandbox Code Playgroud)

然后使用 开始会话screen -x,但出现以下错误:

Must be connected to a terminal.
Run Code Online (Sandbox Code Playgroud)

我可以看到,试图启动时,很多人都有过类似的问题screen,从ssh,但我不能应用建议的解决方案,我的情况。

A.B*_*.B. 7

对于 LXD 使用

lxc exec my-ubuntu -- sh -c "exec >/dev/tty 2>/dev/tty </dev/tty && /usr/bin/screen -s /bin/bash"
Run Code Online (Sandbox Code Playgroud)

或者

lxc exec my-ubuntu -- sh -c "exec >/dev/tty 2>/dev/tty </dev/tty && /usr/bin/screen -x"
Run Code Online (Sandbox Code Playgroud)

或任何其他screen开关。


Docker 也一样 ;)

docker run -it my-ubuntu sh -c "exec >/dev/tty 2>/dev/tty </dev/tty && /usr/bin/screen -s /bin/bash"
Run Code Online (Sandbox Code Playgroud)