Оглавление
Для выполнения различных действий с контейнерами, предназначен ряд простых утилит, названия которых начинаются с префикса lxc-*.
Предназначение большинства из них, например lxc-start
lxc-console
lxc-console
понятно из названия.
Что бы создать новый контейнер, необходимо выполнить lxc-create с несколькими параметрами:
$ sudo lxc-create -t ubuntu -n 001
Параметр -t позволяет указать шаблон, а -n устанавливает уникальное имя для нового контейнера. В результате со стандартных репозиториев Ubuntu будет загружен специально подготовленный для lxc дистрибтив (~280Mb), такой же как и хост-система, и развернут новый изолированный экземпляр ОС. В качестве учетных данных для этого экземпляра необходимо использовать логин ubuntu и такой же пароль. У других шаблонов, могут использоваться другие учетные данные. Обычно, об этом сообщается в консоли по окончанию развертки контейнера. Конфигурационный файл, а так же корневой каталог со всей структурой нового контейнера будет располагаться в директории /var/lib/lxc/<имяКонтейнера>/.
После того как загрузка и установка будут завершены, можно выполнить запуск контейнера:
$ sudo lxc-start -n 001 -d
Опция -d позволяет запустить экземпляр ОС в фоне. В противном случае, мы бы автоматически попали в локальную консоль контейнера, выйти из которой можно нажав ctrl+a и затем q.
Когда контейнер работает в фоне, доступ к нему можно получить следующими способами.
Получить локальную консоль:
$ sudolxc-console -n 001
Начиная с ядра 3.8 есть возможность вызвать bash любого экземпляра ОС минуя авторизацию:
$ sudo lxc-attach -n 001
и наконец, самое полезное, подключение с помощью SSH:
$ sudo lxc-info -n 001 или lxc-ls --fancy
позволяет увидеть IP-конфигурацию контейнера:
$ sudo ssh ubuntu@IP-из-lxc-info
Остановить контейнер так же можно несколькими способами. Кроме стандартного выключения средствами ОС контейнера, можно воспользоваться корректной остановкой из хост-системы:
$ lxc-stop -n <имяКонтейнера>
или принудительным «убийством» путем добавления ключа -k к предыдущей команде.
Заморозка контейнеров
Обычно, загрузка и завершение работы контейнеров не занимает много времени. Но, если по какой-то причине это делать нельзя, то можно воспользоваться заморозкой (постановкой на паузу).
$ sudo lxc-freeze -n <имяКонтейнера>
в таком случае, все процессы указанного контейнера будут заморожены и перестанут потреблять ресурсы процессора и подсистемы вводавывода. Но, используемая ими память не освободится! Вывод из заморозки осуществляется противоположной командой lxc-unfreeze
.
Фото: nito4ka.ru.
Помогла ли вам статья?