|
|||||||
Как установить контейнеры LXD / LXC в Ubuntu ?
Время создания: 14.01.2021 20:10
Автор: alensav
Текстовые метки: Как установить контейнеры LXD / LXC в Ubuntu ?
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1610644205ejjav7k3n8/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Как установить контейнеры LXD / LXC в Ubuntu ? спросил 01 Дек, 19 от Boriss (1тыс. баллов) Имеется система Убунту. Помогите с установкой контейнеров.
136 просмотров 1 ответов ответил 22 Март, 20 от s_v_e (19.1тыс. баллов) Чтобы установить LXD в систему Ubuntu (18.04 LTS), мы можем начать с установки LXD, используя команду apt ниже: sudo apt update sudo apt install lxd -y После установки LXD мы можем начать с его инициализации, как показано ниже (в большинстве случаев используются параметры по умолчанию) sudo lxd init После успешной инициализации LXD выполните приведенную ниже команду, чтобы проверить информацию sudo lxc info | more Используйте приведенную ниже команду для просмотра списка загруженных контейнеров хосте q+-------+-------------+--------+-------------+------+------+-------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | +-------+-------------+--------+-------------+------+------+-------------+ Быстрый и простой способ запустить первый контейнер в Ubuntu 18.04 (или любой поддерживаемый вариант Ubuntu), используя следующую команду. Имя контейнера, которое вы предоставили, к примеру xxx sudo lxc launch ubuntu:18.04 xxx Creating xxx Starting xxx Чтобы перечислить, какие контейнеры LXC находятся в системе sudo lxc list +--------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +--------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | shashi | RUNNING | 10.122.140.140 (eth0) | fd42:49da:7c44:cebe:216:3eff:fea4:ea06 (eth0) | PERSISTENT | 0 | +--------+---------+-----------------------+-----------------------------------------------+------------+-----------+ Другие команды управления контейнером для LXD перечислены ниже: Примечание. В приведенных ниже примерах xxx - это имя вашего контейнера. Как взять bash shell из вашего LXD Контейнера? $ sudo lxc exec xxx bash Как остановить, запустить и перезапустить контейнер LXD? $ sudo lxc stop xxx sudo lxc list +--------+---------+------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +--------+---------+------+------+------------+-----------+ | shashi | STOPPED | | | PERSISTENT | 0 | +--------+---------+------+------+------------+-----------+ $ sudo lxc start xxx $ sudo lxc restart xxx Как удалить контейнер LXD? $ sudo lxc stop xxx $ sudo lxc delete xxx $ sudo lxc list +------+-------+------+------+------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+-------+------+------+------+-----------+ Как сделать снимок контейнера LXD, а затем восстановить его? Предположим, что у вас есть контейнер pkumar на основе изображения centos7, поэтому чтобы сделать snapshot, используйте следующее: $ sudo lxc snapshot pkumar pkumar_snap0 Используйте команду ниже, чтобы проверить снимок $ sudo lxc info pkumar | grep -i Snapshots -A2 Snapshots: pkumar_snap0 (taken at 2019/08/02 19:39 UTC) (stateless) Используйте команду ниже, чтобы восстановить контейнер LXD из их снимка Синтаксис: $ lxc restore {container_name} {snapshot_name} $ sudo lxc restore pkumar pkumar_snap0 Как удалить снимок контейнера LXD? sudo lxc delete <имя контейнера/имя снимка> Как установить ограничение памяти, процессора и диска на контейнере LXD? Синтаксис для установки предела памяти: # lxc config set <container_name> limits.memory <Memory_Size>KB/MB/GB Синтаксис для установки лимита ЦП: # lxc config set <container_name> limits.cpu {Number_of_CPUs} Синтаксис для установки ограничения диска: # lxc config device set <container_name> root size <Size_MB/GB> Примечание. Для установки ограничения диска (требуется файловая система btrfs или ZFS). Давайте установим лимит на память и процессор на контейнере с помощью следующих команд: sudo lxc config set ваше_имя limits.memory 256MB sudo lxc config set ваше_имя limits.cpu 2 Установите и настройте контейнер LXC (команды и операции) Чтобы установить lxc в вашей системе Ubuntu, используйте команду apt ниже: $ sudo apt install lxc -y В более ранней версии LXC использовалась команда « lxc-clone », а позже она устарела. Теперь команда « lxc-copy » широко используется для операции клонирования. Примечание. Чтобы команда «lxc-copy» работала, используйте следующие шаги установки: $ sudo apt install lxc1 -y оставил комментарий 22 Март, 20 от s_v_e (19.1тыс. баллов) Создание контейнеров Linux с использованием шаблонов LXC предоставляет готовые шаблоны для простой установки контейнеров Linux. Шаблоны обычно находятся в пути к каталогу /usr/share/lxc/templates, но при новой установке мы не получим шаблоны, поэтому для загрузки шаблонов в локальной системе выполните следующую команду: $ sudo apt install lxc-templates -y Как только lxc-шаблоны будут успешно установлены, они будут доступны $ sudo ls /usr/share/lxc/templates/ lxc-alpine lxc-centos lxc-fedora lxc-oci lxc-plamo lxc-sparclinux lxc-voidlinux lxc-altlinux lxc-cirros lxc-fedora-legacy lxc-openmandriva lxc-pld lxc-sshd lxc-archlinux lxc-debian lxc-gentoo lxc-opensuse lxc-sabayon lxc-ubuntu lxc-busybox lxc-download lxc-local lxc-oracle lxc-slackware lxc-ubuntu-cloud Давайте запустим контейнер, используя шаблон Синтаксис: lxc-create -n <container_name> lxc -t <template_name> $ sudo lxc-create -n Вашеимя_lxc -t ubuntu ……………………… invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of start. Current default time zone: 'Etc/UTC' Local time is now: Fri Aug 2 11:46:42 UTC 2019. Universal Time is now: Fri Aug 2 11:46:42 UTC 2019. ## # The default user is 'ubuntu' with password 'ubuntu'! # Use the 'sudo' command to run tasks as root in the container. ## После создания полного шаблона мы можем войти в эту консоль, выполнив следующие шаги $ sudo lxc-start -n ВАШЕИМЯ_lxc -d $ sudo lxc-console -n ВАШЕИМЯ_lxc Connected to tty 1 Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself Ubuntu 18.04.2 LTS ВАШЕИМЯ_lxc pts/0 shashi_lxc login: ubuntu Password: Last login: Fri Aug 2 12:00:35 UTC 2019 on pts/0 Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-20-generic x86_64) To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for deeeeeexketails. ubuntu@ВАШЕИМЯ_lxc:~$ free -h total used free shared buff/cache available Mem: 3.9G 23M 3.8G 112K 8.7M 3.8G Swap: 1.9G 780K 1.9G ubuntu@ВАШЕИМЯ_lxc:~$ grep -c processor /proc/cpuinfo 1 ubuntu@ВАШЕИМЯ_lxc:~$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda1 40G 7.4G 31G 20% / ubuntu@ВАШЕИМЯ_lxc:~$ Теперь выйдите или выйдите из контейнера и вернитесь в окно входа в систему хост-машины. С помощью команды lxc-ls мы видим, что контейнер ВАШЕИМЯ-lxc создан. $ sudo lxc-ls kkkkkkk ВАШЕИМЯ_lxc ВАШЕИМЯ Команда «lxc-ls -f» предоставляет подробности с IP-адресом контейнера, и то же, что и ниже, $ sudo lxc-ls -f NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED ВАШЕИМЯ_lxc RUNNING 0 - 10.0.3.190 - false Команда « lxc-info -n <container_name> » предоставляет всю необходимую информацию, а также состояние, IP-адрес и т.д. $ sudo lxc-info -n ВАШЕИМЯ_lxc Name: ВАШЕИМЯ_lxc State: RUNNING PID: 6732 IP: 10.0.3.190 CPU use: 2.38 seconds BlkIO use: 240.00 KiB Memory use: 27.75 MiB KMem use: 5.04 MiB Link: vethQ7BVGU TX bytes: 2.01 KiB RX bytes: 9.52 KiB Total bytes: 11.53 KiB Как запустить, остановить, перезапустить и удалить контейнеры LXC $ lxc-start -n <container_name> $ lxc-stop -n <container_name> $ lxc-destroy -n <container_name> Операция клонирования LXC Теперь основная операция клонирования будет выполняться на контейнере LXC. Следующие шаги выполняются Как описано ранее, LXC предлагает функцию клонирования контейнера из существующего контейнера, выполнив следующую команду для клонирования существующего контейнера «ВАШЕИМЯ_lxc» в новый контейнер «ВАШЕИМЯ_lxc_clone». Примечание: мы должны убедиться, что перед началом операции клонирования сначала остановлен существующий контейнер с помощью команды «lxc-stop». $ sudo lxc-stop -n ВАШЕИМЯ_lxc $ sudo lxc-copy -n ВАШЕИМЯ_lxc -N ВАШЕИМЯ_lxc_clone $ sudo lxc-ls ВАШЕИМЯ_lxc ВАШЕИМЯ_lxc_clone Теперь запустите клонированный контейнер $ sudo lxc-start -n ВАШЕИМЯ_lxc_clone $ sudo lxc-ls -f NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED ВАШЕИМЯ_lxc STOPPED 0 - - - false ВАШЕИМЯ_lxc_clone RUNNING 0 - 10.0.3.201 - false С помощью вышеуказанного набора команд операция клонирования завершается, и создается новый клон «ВАШЕИМЯ_lxc_clone». Мы можем войти в эту консоль контейнера lxc с помощью следующих шагов: $ sudo lxc-console -n ВАШЕИМЯ_lxc_clone Connected to tty 1 Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself Ubuntu 18.04.2 LTS ВАШЕИМЯ_lxc pts/0 ВАШЕИМЯ_lxc login: Конфигурация и команды LXC Network Мы можем присоединиться к вновь созданному контейнеру, но для удаленного входа в этот контейнер с использованием SSH или любым другим способом нам необходимо внести некоторые минимальные изменения конфигурации, как описано ниже: $ sudo lxc-attach -n ВАШЕИМЯ_lxc_clone root@ВАШЕИМЯ_lxc:/# root@ВАШЕИМЯ_lxc:/# useradd -m ВАШЕИМЯ root@ВАШЕИМЯ_lxc:/# passwd ВАШЕИМЯ Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@ВАШЕИМЯ_lxc:/# Сначала установите сервер ssh с помощью следующей команды, чтобы можно было установить плавное соединение «ssh». root@ВАШЕИМЯ_lxc:/# apt install openssh-server -y Теперь получите IP-адрес существующего контейнера lxc, используя следующую команду: root@ВАШЕИМЯ_lxc:/# ip addr show eth0|grep inet inet 10.0.3.201/24 brd 10.0.3.255 scope global dynamic eth0 inet6 fe80::216:3eff:fe82:e251/64 scope link root@ВАШЕИМЯ_lxc:/# На хост-машине с новым окном консоли используйте следующую команду для подключения к этому контейнеру через ssh ssh 10.0.3.201 ВАШЕИМЯ@10.0.3.201's password: $ Теперь мы вошли в контейнер, используя сессию ssh. Команды, связанные с процессом LXC $ ps aux|grep lxc|grep -v grep LXC snapshot snapshot - это одна из основных операций, которая поможет сделать моментальный снимок изображения контейнера lxc. Эти же снимки могут быть использованы позже для дальнейшего использования. $ sudo lxc-stop -n ВАШЕИМЯ_lxc ВАШЕИМЯ $ sudo lxc-snapshot -n ВАШЕИМЯ_lxc Путь к снимку можно найти с помощью следующей команды: $ sudo lxc-snapshot -L -n ВАШЕИМЯ_lxc snap0 (/var/lib/lxc/ВАШЕИМЯ_lxc/snaps) 2019:08:02 20:28:49 Контейнеры LXC, LinuX - одна из первых контейнерных технологий. Понимание концепций и изучение LXC поможет глубже понять любые другие контейнеры, такие как Docker Containers. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|