Я запускаю Ubuntu 12.04.5 LTS (пакет lxc 0.7.5-3ubuntu69) с одним гостем lxc. Все работает нормально, за исключением того, что контейнер lxc, похоже, использует / беспорядок с хост-устройствами tty.
Как только контейнер запущен, я больше не могу войти на хост, используя его консоли, потому что после ввода имени пользователя он всегда показывает мне «Невозможно определить ваше имя tty». а потом просто зависает. Системный журнал на хосте медленно заполняется сообщениями «init: tty1 main process (17911) terminated with status 1» и «init: tty1 main process completed, respawning».
Есть ли способ запретить lxc доступ к хостам, консолям / ttys? Есть ли способ исправить хост без перезагрузки?
Вот моя текущая конфигурация контейнера lxc:
lxc.utsname = guest1
lxc.rootfs = /var/lib/lxc/guest1/rootfs
lxc.devttydir = lxc
lxc.tty = 4
lxc.pts = 1024
lxc.mount = /var/lib/lxc/guest1/fstab
lxc.arch = amd64
lxc.cap.drop = sys_module mac_admin mac_override
lxc.pivotdir = lxc_putold
# Interface for public network
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr = 00:16:3e:d6:01:04
# Interface for private network
lxc.network.type=veth
lxc.network.link=br1
lxc.network.flags=up
lxc.network.hwaddr = 00:16:3e:d6:01:05
# Deny access to all devices by default
lxc.cgroup.devices.deny = a
# Allow any mknod (but not using the node)
lxc.cgroup.devices.allow = c *:* m
lxc.cgroup.devices.allow = b *:* m
# /dev/null and /dev/zero
lxc.cgroup.devices.allow = c 1:3 rwm
lxc.cgroup.devices.allow = c 1:5 rwm
# /dev/full
lxc.cgroup.devices.allow = c 1:7 rwm
# consoles
#lxc.cgroup.devices.allow = c 5:1 rwm
#lxc.cgroup.devices.allow = c 5:0 rwm
#lxc.cgroup.devices.allow = c 4:0 rwm
#lxc.cgroup.devices.allow = c 4:1 rwm
# /dev/{,u}random
lxc.cgroup.devices.allow = c 1:9 rwm
lxc.cgroup.devices.allow = c 1:8 rwm
lxc.cgroup.devices.allow = c 136:* rwm
lxc.cgroup.devices.allow = c 5:2 rwm
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm
# fuse
#lxc.cgroup.devices.allow = c 10:229 rwm
# tun
#lxc.cgroup.devices.allow = c 10:200 rwm
# hpet
lxc.cgroup.devices.allow = c 10:228 rwm
# kvm
#lxc.cgroup.devices.allow = c 10:232 rwm
Кажется, решением для возврата TTY хостов было удалить существующие устройства / dev / tty [1-4] на хосте и воссоздать их с помощью mknod.
Я еще не проверял, ломает ли lxc их снова после перезапуска контейнера, но, по крайней мере, это исправляет.
Попробуйте эту опцию как часть конфигурации
lxc.devttydir = lxc
Это создаст каталог rootfs / dev / lxc для tty1 и консоль для конкретного контейнера; В этом случае tty1 - это следующий свободно доступный терминал, который может использоваться контейнером;