Je travaille avec lxc dans Ubuntu 12.04, et c'est vraiment génial. Cependant, je ne parviens pas à me déconnecter d'un lxc-console
session après connexion. J'ai lu quelque part que Ctrl-aq va me déconnecter de la console mais cela ne semble pas fonctionner.
Dois-je exécuter lxc-console
via screen
à la place?
Oui, Ctrl-aq, devrait fonctionner par défaut, mais non, lxc-console
n'utilise pas réellement screen
pour accomplir son comportement de console. En fait, vous pourriez rencontrer un conflit si vous utilisez l'écran car il utilise également Ctrl-a comme préfixe. Si vous êtes à l'intérieur de screen
mais ne vous en rendez pas compte, vous devrez taper Ctrl-a a q puisque le comportement par défaut de screen
est que vous devez taper Ctrl-a a envoyer réellement ^a
au Shell exécuté à l'intérieur de celui-ci. Vous pouvez modifier le préfixe d'échappement en passant le -e
ou --escape=PREFIX
option pour lxc-console
.
Il semble également qu'il puisse y avoir un bogue dans lxc-start
de sorte que s'il passe immédiatement en mode console lorsque vous démarrez le conteneur, vous ne pouvez pas l'utiliser Ctrl-a q pour échapper - en fait, tous les personnages de contrôle semblent être vissés et imprimés à l'écran au lieu de se comporter comme vous l'attendez. Une solution consiste à l'exécuter avec le -d
ou --daemon
option pour qu'il ne démarre pas immédiatement une console, et la connecter à la main:
lxc-start -d -n container-name
lxc-console -n container-name
Ce que j'ai fait pour arrêter le conteneur
lxc-stop -n <name of the container>
Cela arrêtera le conteneur.
Ne se connecte-t-il pas via screen
? Ctrl-a d
devrait vous en sortir.
La page Ubuntu LXC contient plus d'informations.
J'ai rencontré un problème similaire lorsque je travaillais avec mon Trusty LXC dans Xenial-Host et après avoir démarré le conteneur avec lxc-start -F -n CN
n'a pas pu sortir et revenir à l'hôte lorsque vous vous êtes déconnecté du conteneur. Également Sudo lxc-ls -f
dans l'hôte pendu et aucun des lxc-stop
les commandes avec les options -k ou -W ou --no-lock ont fonctionné, donc j'ai finalement tué -9'd le processus de conteneur qui a fonctionné mais après avoir démarré le conteneur avec lxc-start
ou lxc-attach
ne fonctionne pas correctement, mais affiche des erreurs sur lxc_cgfsng et ne trouve pas le pid d'init, etc.
Voir plus ici: https://github.com/lxc/lxc/issues/1195
Une autre façon de se connecter consiste à faire simplement ssh <ip>
Au lieu d'utiliser lxc-console
. Vous pouvez utiliser le démarrer en tant que démon en utilisant lxc-start -d -n <name>
Puis vous connecter à l'aide de la console pour obtenir l'IP pour la première fois.