lxc-console
我在 Ubuntu 12.04 中使用 lxc,它真的很棒。但是,连接后我无法断开会话。我读到过一些Ctrl-aq可以断开我与控制台的连接的方法,但似乎行不通。
我应该lxc-console
通过运行screen
吗?
答案1
是的Ctrl-aq,默认情况下应该可以工作,但是lxc-console
实际上不用于screen
实现其控制台行为。事实上,如果您使用 screen 可能会遇到冲突,因为它也使用Ctrl-a前缀。如果您在里面screen
但没有意识到,那么您需要输入,Ctrl-a a q因为的默认行为screen
是您必须输入Ctrl-a a才能实际发送到在其中运行的 shell。您可以通过将或选项^a
传递给来更改 escape 的前缀。-e
--escape=PREFIX
lxc-console
此外,似乎可能存在一个错误,lxc-start
因此,如果启动容器时它立即进入控制台模式,您就无法使用它来退出——事实上,所有控制字符似乎都被搞乱了,并打印到屏幕上,而不是按照您期望的方式运行。一种解决方法是使用或选项Ctrl-a q运行它,这样它就不会立即启动控制台,而是手动连接到它:-d
--daemon
lxc-start -d -n container-name
lxc-console -n container-name
答案2
我做了什么来停止容器
- 打开一个新会话。
- 以 root 身份登录。
- 检查容器状态。
lxc-stop -n <name of the container>
这将停止容器。
答案3
它不是通过?连接的吗screen
? Ctrl-a d
应该可以让你摆脱它。
这Ubuntu LXC 页面有更多信息。
答案4
我在 Xenial-host 中使用 Trusty LXC 时也遇到了类似的问题,启动容器后,lxc-start -F -n CN
从容器注销后无法退出并返回主机。此外,sudo lxc-ls -f
主机中的 挂起,并且lxc-stop
带有 -k 或 -W 或 --no-lock 选项的所有命令都不起作用,所以我最终使用 -9 杀死了容器进程,虽然可以正常工作,但之后启动容器时lxc-start
或lxc-attach
无法正常工作,但会显示有关 lxc_cgfsng 和未找到 init pid 等的错误。