Logo

Установка LXD и утилиты командной строки

Ubuntu desktop and Ubuntu server

Пользователи Ubuntu 16.04 LTS могут установить LXD с помощью:

apt-get install lxd

Пользователи Ubuntu 14.04 LTS также могут установить LXD с использованием backports:

apt-get -t trusty-backports install lxd

В качестве альтернативы, для получения последнего upstream релиза доступен PPA:

add-apt-repository ppa:ubuntu-lxc/lxd-stable
apt-get update
apt-get dist-upgrade
apt-get install lxd

Пакет создает новую группу "lxd" содержащую всех пользователей, которым разрешено соединятся с
lxd через локальный unix socket. Все пользователи групп "admin" и "sudoers" добавляются автоматически.
Если ваш пользователь не входит в одну из этих групп, вам необходимо вручную добавить его в группу "lxd".

Так как членство в группах фиксируется при входе, вам необходимо закрыть
и переоткрыть вашу пользовательскую сессию или использовать команду "newgrp lxd" в интерактивной оболочке, в которой вы работаете с lxd.

newgrp lxd

Затем, для начальной настройки демона LXD, включающей, по вашему пожеланию, настройку оптимизированного хранилища (ZFS),
а также для обеспечения видимости демона в сети и настройки сети для контейнеров:

sudo lxd init

Ubuntu Core (snappy)

LXD доступен для Ubuntu Core как пакет Snap в магазине.
Вы можете установить его с помощью:

sudo snappy install lxd.stgraber

После этого, с LXD можно будет взаимодействовать с помощью команды "lxc".

Следует отметить, что генерация сертификата сервера может занять долгое время, если вы работаете с устройством вроде
rpi2, так что может быть, что LXD начнет отвечать на команду lxc только через несколько минут.

Другие дистрибутивы

На данный момент существуют пакеты для множества дистрибутивов, включая Gentoo и, конечно, Ubuntu.
Пользователи других дистрибутивов тоже могут найти их в своем менеджере пакетов.

Если их там нет, пожалуйста, загрузите и соберите LXD из git или используя последний релизный tarball.

Инструкции для обоих способов доступны здесь.

Импорт различных образов

LXD основан на образах. Контейнеры создаются из образа, поэтому хранилище образов
должно содержать несколько образов перед основной работой с LXD.

Есть несколько путей заполнить хранилище:

  1. Используя удаленный LXD как сервер образов
  2. Используя встроенные источники образов
  3. Вручную импортируя по одному
    lxc image import <file> --alias <name>
    

Использование удаленного LXD как сервера образов

Использование удаленного сервера образов также просто, как его добавление и использование:

lxc remote add images 1.2.3.4
lxc launch images:image-name your-container

Список образов может быть получен с:

lxc image list images:

Использование встроенных источников образов

По умолчанию LXD поставляется с 3 удаленными источниками, предоставляющими образы:

  1. ubuntu: (for stable Ubuntu images)
  2. ubuntu-daily: (for daily Ubuntu images)
  3. images: (for a bunch of other distros)

Для запуска контейнера из них, просто:

lxc launch ubuntu:14.04 my-ubuntu
lxc launch ubuntu-daily:16.04 my-ubuntu-dev
lxc launch images:centos/6/amd64 my-centos

Ручной импорт образа

Если у вас уже есть lxd-совместимый файл образа, вы можете импортировать его:

lxc image import \<file\> --alias my-alias

И запустить контейнер:

lxc launch my-alias my-container

Смотрите спецификации образов для подробной информации.

Создание и использование вашего первого контейнера

Предполагая, что вы импортировали образ Ubuntu cloud из источника "ubuntu", можете создать контейнер:

lxc launch ubuntu first

Это создаст и запустит новый контейнер ubuntu, что подтвердит:

lxc list

Ваш контейнер здесь называется "first". Вы можете предоставить LXD выбрать случайное имя
просто вызвав "lxc launch ubuntu" без имени.

Сейчас ваш контейнер запущен, вы можете получить интерактивный доступ внутрь:

lxc exec first -- /bin/bash

Или вызвать команду напрямую:

lxc exec first -- apt-get update

Для скачивания файла из контейнера, используйте:

lxc file pull first/etc/hosts .

Для загрузки:

lxc file push hosts first/tmp/

Для остановки, просто сделайте:

lxc stop first

И для полного удаления:

lxc delete first

Множество хостов

Утилита командной строки "lxc" может связываться со множеством серверов LXD.
По умолчанию она связана с локальным по локальному UNIX socket.

Удаленные операции требуют запуска двух команд на удаленном сервере:

lxc config set core.https_address "[::]"
lxc config set core.trust_password some-password

Первая указывает LXD слушать все адреса на порту 8443.
Вторая устанавливает надежный пароль для связи с сервером.

Теперь для связи с удаленным LXD, вы можете просто добавить его:

lxc remote add host-a <ip address or DNS>

Это попросит вас подтвердить отпечаток удаленного сервера а затем спросит пароль.

И после этого, используйте те же команды, что и раньше, но предваряя из именами контейнера
и образа:

lxc exec host-a:first -- apt-get update