Основные команды LXC


Команда Значение
lxc-attach Подключение к контейнеру - запускает bash от имени root, минуя логин. Выход по exit
lxc-autostart Запуск контейнеров, в конфиге которых включена автозагрузка
lxc-cgroup Управление cgroup-группами контейнер
lxc-checkconfig
lxc-clone
lxc-config
lxc-console Подключение к консоли контейнера. Выйти, отключиться от консоли можно комбинацией клавиш ctrl-a q.
lxc-create Создание нового контейнера
lxc-destroy Удалить указанный контейнер
lxc-device Проброс устройств в контейнер
lxc-execute Выполнить указанную команду внутри контейнера
lxc-freeze Заморозить все процессы указанного контейнера
lxc-info Показать информацию о заданном контейнере
lxc-ls Показать список контейнеров в системе
lxc-monitor Мониторить состояние контейнеров
lxc-snapshot
lxc-start Запуск существующего контейнера
lxc-start-ephemeral
lxc-stop Остановить указанный контейнер
lxc-unfreeze Разморозить все процессы указанного контейнера
lxc-unshare
lxc-usernsexec
lxc-wait Ждать определённого состояния контейнера; завершится, когда состояние достигнут
lxterm


lxc-attach

Опции Значение
-n, --name=NAME Указать имя контейнера.
-e, --elevated-privileges=PRIVILEGES Не сбрасывать привилегии.
-a, --arch=ARCH Use ARCH for program instead of container's ownarchitecture.
-s, --namespaces=FLAGS Указать пространства имён, к которым нужно подсоединиться. Разрешены MOUNT, PID, UTSNAME, IPC, USER и NETWORK.
-R, --remount-sys-proc Remount /sys and /proc if not attaching to the mount namespace when using -s in order to properly reflect the correct namespace context. See the lxc-attach(1) manual page for details.
--clear-env Clear all environment variables before attaching. The attached shell/program will start with only container=lxc set.
--keep-env Keep all current environment variables. This is the current default behaviour, but is likely to change in the future.
-v, --set-var Set an additional variable that is seen by the attached program in the container. May be specified multiple times.
--keep-var Keep an additional environment variable. Only applicable if –clear-env is specified. May be used multiple times.
-o, --logfile=FILE Output log to FILE instead of stderr
-l, --logpriority=LEVEL Set log priority to LEVEL
-q, --quiet Don't produce any output
-P, --lxcpath=PATH Использовать нестандартный путь к контейнеру.
-?, --help Give this help list
--usage Give a short usage message
--version Print the version number
  • Подключиться к контейнеру test-ubuntu:
lxc-attach -n test-ubuntu
  • Выполнить команду top в контейнере test-ubuntu:
lxc-attach -n test-ubuntu -- top


lxc-autostart

Опция Значение
-k, --kill kill the containers instead of starting them
-L, --list list all affected containers and wait delay
-r, --reboot reboot the containers instead of starting them
-s, --shutdown shutdown the containers instead of starting them
-a, --all Старт контейнеров, имеющих опцию автозапуска
-g, --groups Список контейнеров, состоящих в указанной группе
-t, --timeout=T wait T seconds before hard-stopping
-o, --logfile=FILE Output log to FILE instead of stderr
-l, --logpriority=LEVEL Set log priority to LEVEL
-q, --quiet Don't produce any output
-P, --lxcpath=PATH Use specified container path
-?, --help Give this help list
--usage Give a short usage message
--version Print the version number

Каждый контейнер описывается своим конфигурационным файлом в /var/lib/lxc/имя-контейнера/config.
Значения, связанные с автостартом контейнера:

  • lxc.start.auto = 0 (выключено) или 1 (включено)
  • lxc.start.delay = 0 (задержка в секундах до автостарта контейнера)
  • lxc.start.order = 0 (приоритет контейнера, чем выше значение, тем раньше стартует контейнер)
  • lxc.group = group1,group2,group3,… (членами каких групп является контейнер)

Когда стартует хост-машина, init скрипт lxc-autostart запустит все контейнеры, у которых НЕ указана группа, в правильном порядке и через определённое ими время, но в конфиге контейнера указано lxc.start.auto=1. Источник.

  • Запустить все контейнеры, имеющие lxc.start.auto=1:
lxc-autostart -a
  • Запустить все контейнеры, имеющие lxc.start.auto=1 и принадлежащие группе ubuntu:
lxc-autostart -r -g ubuntu


lxc-create

Создать контейнер с именем test_ubuntu из образа ubuntu:

lxc-create -t ubuntu -n test-ubuntu
  • Создать контейнер с именем test-centos из образа centos версии 6 для процессора архитектуры i386:
# Если в системе не установлен пакетный менеджер yum, то необходимо его установить:
apt-get install yum
# Затем создать контейнер:
lxc-create -t centos -n test-centos6 -- -R 6 -a i386


lxc-freeze

  • Заморозить все процессы в контейнере:
lxc-freeze -n имя_контейнера

В результате процессы не тратят такты, отведенные им планировщиком, но продолжают существовать и потреблять ОЗУ.



lxc-device

Опции Значение
add Добавить устройство.
-h, --help Показать окно справки.
-n CONTAINER Имя контейнера, в который необходимо пробросить устройство
-P PATH, --lxcpath PATH Указать нестандартный путь к контейнеру
--version Показать версию программы и выйти
  • Добавить (mknod) /dev/ttyS0 в контейнер test-ubuntu с тем же типом, старшим (major), младшим (minor) числами под именем /dev/ttyUSB0 и добавить разрешающие записи cgroup:
lxc-device add -n test-ubuntu /dev/ttyUSB0 /dev/ttyS0


lxc-info

  • Подключение к контейнеру по SSH:
# Вывод подробной информации о контейнере, включая IP:
lxc-info -n test-ubuntu
 
Name:           test-ubuntu
State:          RUNNING
PID:            18382
IP:             10.0.3.115
CPU use:        0.40 seconds
BlkIO use:      24.00 KiB
Memory use:     2.28 MiB
KMem use:       0 bytes
Link:           vethIJRP38
 TX bytes:      1.09 KiB
 RX bytes:      1.01 KiB
 Total bytes:   2.10 KiB
 
 
# Подключение к контейнеру по IP из вывода lxc-info:
ssh root@10.0.3.115


lxc-ls

Опция Значение
-h, --help Вывод справки
-l Формат вывода - один контейнер в строку
-P PATH, --lxcpath PATH
--active Вывести список только активных контейнеров
--frozen Вывести список только замороженных контейнеров
--running Вывести список только запущенных контейнеров
--stopped Вывести список только остановленных контейнеров
-f, --fancy Вывести всю информацию в удобочитаемом варианте
-F FANCY_FORMAT, --fancy-format FANCY_FORMAT
--nesting
--version Вывести номер версии программы и выйти
  • Вывести информацию о всех созданных контейнерах в удобочитаемом виде:
lxc-ls -f

NAME     STATE    IPV4  IPV6  AUTOSTART
---------------------------------------
centos6  STOPPED  -     -     NO
centos7  STOPPED  -     -     NO
  • Вывести список контейнеров, которые будут автоматически запущены при старте хоста:
lxc-ls --fancy


lxc-start

  • Запустить контейнер в фоне:
lxc-start -d -n test-ubuntu


lxc-stop

  • Корректная остановка контейнера из хоста:
lxc-stop -n test-ubuntu
  • Грубое убийство контейнера из хоста:
lxc-stop -n test-ubuntu -k


lxc-unfreeze

  • Разморозить все процессы в контейнере:
lxc-unfreeze -n имя_контейнера
  • osnovnye_komandy_lxc.txt
  • Последние изменения: 2015/11/22 00:00
  • (внешнее изменение)