私はUbuntu 12.04でlxcを使用していますが、本当に素晴らしいです。ただし、接続した後、lxc-console
セッションから切断できません。どこかで読んだ Ctrl-aq コンソールから切断されますが、機能していないようです。
代わりにscreen
経由でlxc-console
を実行する必要がありますか?
はい、 Ctrl-aqはデフォルトで機能するはずですが、lxc-console
は実際にはscreen
を使用してコンソールの動作を実現していません。実際、screenも使用しているため、screenを使用している場合は競合が発生する可能性があります Ctrl-a 接頭辞として。 screen
の内部にいても気づかない場合は、次のように入力する必要があります。 Ctrl-a a q screen
のデフォルトの動作は、 Ctrl-a a 内部で実行されているシェルに実際に^a
を送信します。エスケープのプレフィックスを変更するには、-e
または--escape=PREFIX
オプションをlxc-console
に渡します。
また、lxc-start
にバグがある可能性があるため、コンテナーを起動したときにすぐにコンソールモードになった場合、使用できません。 Ctrl-a q エスケープするために-実際、すべての制御文字は、予期したとおりに動作するのではなく、めちゃくちゃになって画面に出力されているようです。回避策の1つは、-d
または--daemon
オプションを指定して実行し、コンソールがすぐに開始されないようにして、手動で接続することです。
lxc-start -d -n container-name
lxc-console -n container-name
コンテナを止めるために私がしたこと
lxc-stop -n <name of the container>
これでコンテナが停止します。
screen
経由で接続しませんか? Ctrl-a d
はそれから抜け出すはずです。
buntu LXCページ に詳細があります。
Xenial-HostでTrusty LXCを使用しているときに同様の問題が発生し、lxc-start -F -n CN
でコンテナーを起動した後、コンテナーからログアウトするとホストに戻り、ホストに戻ることができませんでした。また、ホストのSudo lxc-ls -f
がハングし、-[k]、[-W]、[-no-lock]オプションを指定したlxc-stop
commandsが機能しなかったため、最終的には-9で終了したコンテナープロセスを強制終了しましたが、その後起動しました。 lxc-start
またはlxc-attach
のコンテナは正しく機能しませんが、lxc_cgfsngに関するエラーを表示し、init pidなどを見つけられません。
ログインする別の方法は、ssh <ip>
を使用する代わりにlxc-console
を使用することです。 lxc-start -d -n <name>
を使用してデーモンとして起動し、コンソールを使用してログインして、初めてIPを取得できます。