Здесь приведены основные команды LXC 1.0 — первого, реально стабильного релиза LXC, который будет поддерживаться 5 лет и поставляется в составе Ubuntu 14.04 LTS.
Установка LXC
Установка LXC 1.0 осуществляется одной командой
sudo apt-get install lxc
которая подтягивает все необходимые пакеты. После установки можно проверить корректность:
sudo lxc-checkconfig
При правильной установке и корректных параметрах системы должно выдаться что-то типа:
Kernel configuration not found at /proc/config.gz; searching... Kernel configuration found at /boot/config-3.13.0-44-generic --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled
--- Control groups --- Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled
--- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
Файлы доступных шаблонов находятся в каталоге /usr/share/lxc/templates/.
Контейнеры будут размещаться в /var/lib/lxc/<название контейнера>.
Создание контейнеров
Можно создавать контейнеры LXC двух видов — привилегированном, с запуском команд lxc от пользователя root; или непривилегированном, с запуском команд lxc от обычного пользователя. Непривилегированные контейнеры более ограничены, например они не могут создавать файлы устройств или монтировать файловые системы на блочных устройствах. Однако они менее опасны для хост-компьютера, так как идентификатору пользователя root контейнера сопоставляется идентификатор обычного пользователя хост-компьютера. Здесь описана работа с привилегированным контейнером.
sudo lxc-create -t <имя_шаблона> -n <имя_контейнера>
например:
sudo lxc-create -t ubuntu -n my_first_lxc
Вместо имени шаблона можно использовать download, тогда будут интерактивно заданы вопросы о том, какой тип корневой файловой системы для контейнера нужно загрузить; в частности, какие требуются дистрибутив, версия и архитектура.
sudo lxc-create -t download -n my_first_lxc
Доступные шаблоны находятся на сайте авторов: https://images.linuxcontainers.org/images/. Остальные параметры можно посмотреть по
sudo lxc-create -h
Запуск контейнера lxc
sudo lxc-start -n <имя_контейнера>
По этой команде запускается контейнер и мы сразу же попадаем в консоль этой системы.
sudo lxc-start -n <имя_контейнера> -d
Запуск контейнера в режиме демона.
Подключиться к консоли контейнера
sudo lxc-console -n <имя_контейнера>
подключиться к консоли указанного контейнера. Выйти, отключиться от консоли можно комбинацией клавиш ctrl-a q.
Подключиться к контейнеру
lxc-attach
запустить bash в указанном контейнере от root. Выход по exit.
Остальные команды
lxc-destroy
удалить контейнер
lxc-stop
остановить контейнер
lxc-ls
показать список контейнеров в системе
lxc-ps
показать список процессов внутри определённого контейнера
lxc-info
показать информацию о заданном контейнере
lxc-freeze
заморозить все процессы указанного контейнера
lxc-unfreeze
разморозить все процессы указанного контейнера