Я работаю с lxc в Ubuntu 12.04, и это действительно здорово. Однако я не могу отключиться от lxc-console
сеанс после подключения. Я где-то читал это Ctrl-Aq отключит меня от консоли, но похоже, что это не работает.
Я должен бежать lxc-console
через screen
вместо?
Да, Ctrl-Aq, должен работать по умолчанию, но нет, lxc-console
фактически не использует screen
для достижения консольного поведения. Фактически, вы можете столкнуться с конфликтом, если используете screen, поскольку он также использует Ctrl-A как префикс. Если ты внутри screen
но не осознайте этого, тогда вам нужно будет ввести Ctrl-a a q поскольку поведение по умолчанию screen
это вы должны ввести Ctrl-a a на самом деле отправить ^a
к оболочке, работающей внутри него. Вы можете изменить префикс для выхода, передав -e
или --escape=PREFIX
возможность lxc-console
.
Кроме того, похоже, что в lxc-start
так что если он сразу переходит в режим консоли, когда вы запускаете контейнер, вы не можете использовать Ctrl-a q чтобы сбежать - на самом деле, все управляющие символы, кажется, облажались и выводят на экран вместо того, чтобы вести себя так, как вы ожидаете. Один из способов решения этой проблемы - запустить его с -d
или --daemon
вариант, чтобы он не запускал консоль сразу, а подключался к ней вручную:
lxc-start -d -n container-name
lxc-console -n container-name
Что я сделал, чтобы остановить контейнер
lxc-stop -n <name of the container>
Это остановит контейнер.
Разве это не подключается через screen
? Ctrl-a d
должен вытащить вас из этого.
В Страница Ubuntu LXC есть дополнительная информация.
Альтернативный способ входа в систему - просто сделать ssh <ip>
Вместо того, чтобы использовать lxc-console
. Вы можете запустить его как демон, используя lxc-start -d -n <name>
а затем войдите в систему с помощью консоли, чтобы получить IP в первый раз.
У меня была аналогичная проблема при работе с моим Trusty LXC в Xenial-host и после запуска контейнера с lxc-start -F -n CN
не мог выйти и вернуться к хосту при выходе из контейнера. Так же sudo lxc-ls -f
в хосте повешен и никто из lxc-stop
команды с опциями -k или -W или --no-lock работали, поэтому я в конечном итоге убил -9, который работал с контейнерным процессом, но затем запустил контейнер с lxc-start
или lxc-attach
не работают должным образом, но отображают ошибки о lxc_cgfsng, не находят идентификатор инициализации и т. д.
Подробнее здесь: https://github.com/lxc/lxc/issues/1195
Когда вы закончили работу с каким-либо приложением, вы обычно можете завершить его с помощью CTR + C. Если это не помогает, всегда есть команда выхода: CTRL +.
CTRL + D, с другой стороны, означает «КОНЕЦ ФАЙЛА» и обычно работает, чтобы остановить чтение клавиатуры какой-либо программой. Вы можете выйти из обычной оболочки с помощью CTRL + D.