Как запустить Ubuntu в Ubuntu? Введение в LXC контейнеры

LXC – хорошее решение для быстрого получения изолированного окружения (контейнера) с возможностью сохранения состояния (stateful). Любые изменения будут сохранены, в этом ключевое отличие от Docker.

Установка

apt-get update
apt-get install lxd

Настройка

  • Вначале выполните:
lxd init

Подтвердите все вопросы ответами по умолчанию. Можере изменить ответ на вопрос Name of the storage backend to use (btrfs, dir, lvm) [default=btrfs]: dir , выбрав директории в качестве способа хранения данных. Так проще получить к ним доступ из-вне и резервировать их (обычным tar или rsync).

  • Список репозитариев. Выполните команду и убедитесь, что у вас подключены внешние URL.
lxc remote list
+-----------------+------------------------------------------+---------------+-----------+--------+--------+
|      NAME       |                   URL                    |   PROTOCOL    | AUTH TYPE | PUBLIC | STATIC |
+-----------------+------------------------------------------+---------------+-----------+--------+--------+
| images          | https://images.linuxcontainers.org       | simplestreams |           | YES    | NO     |
  • Получите список доступных образов в репозитарии:
lxc image list images:

Вы можете сделать выборку (grep той операционной системы, которая нужна вам для установки внутри контейнера):

lxc image list images: | grep 'ubuntu.*18.04.*amd64'

Старт

  • Запустить контейнер с именем ubuntu01 из образа ubuntu/18.04:
lxc launch images:ubuntu/18.04 ubuntu01
  • Получить список запущенных контейнеров:
lxc list
  • Зайти в запущенный контейнер:
lxc exec ubuntu01 -- /bin/bash

Теперь вы внутри контейнера, можете устанавливать и настраивать программы, заливать данные.

Если выиспользовали директории (dir) в качестве хранилища для контейнеров, вы можете получить доступ к его файлам тут: /var/lib/lxd/containers/ . Используйте его только для целей резервирования.

Изменение

  • Подключение внешней директории (тома / диска):
lxc config device add ubuntu01 srv disk source=/mnt/storage/srv/data/ path=/srv
  • Запуск контейнера от привилегированного пользователя (root=root) без смещения uid на 100000 :
lxc config set ubuntu01 security.privileged true
  • Изменение конфигурации внутренней сети lxdbr0:
lxc network show lxdbr0
lxc network set lxdbr0 ipv4.address 10.10.107.1/24

или создание новой:

lxc network create lxdbr0 ipv6.address=none ipv4.address=10.0.3.1/24 ipv4.nat=true

выделений IP адреса для контейнера:

lxc network attach lxdbr0 ubuntu01 eth0
lxc config device set ubuntu01 eth0 ipv4.address 10.10.107.123
Tagged with:

Добавить комментарий

Ваш e-mail не будет опубликован.