Что есть контейнер — это такой мини образ операционной системы Linux
(увы, но Windows
не поддерживается), любой из доступных который запускается на одном узле Proxmox
. Контейнер или же LXC (Linux Containers)
— не использует виртуальные машины, а создает виртуальное окружение с собственным пространством процессов и сетевым стеком. Накладные расходы на память, процессов и диск ниже чем если бы использовалась полноценная операционная система.
Что понадобится.
1) Как установить proxmox on Debian 10
2) Базовая настройка сети для Proxmox 6
3) Чтобы ваш гипервизор на базе Debian 10 + Proxmox 6
имел доступ в интернет, т.к. через него происходит скачивание предподготовленных контейнеров операционных систем.
Шаг №1:
Скачиваем уже подготовленный контейнер различных операционных систем, я буду использовать только Ubuntu LTS
релиз:
https://IP&DNS:8006 (https://172.33.33.25:8006) - user&pass
(Доступ к Proxmox и только в Proxmox
) — (Folder View) Datacenter - Storage - local (srv-proxmox) - Content - Templates
— выделяю к примеру:
Type: lxc
Package: ubuntu-18.04-standard
Version: 18.04.1-1
Description: Ubuntu Bionic (standard)
и нажимаю Download
Лог процесса скачивания (чтобы просто знать):
() starting template download from: http://download.proxmox.com/images/system/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz target file: /var/lib/vz/template/cache/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz file already exists 64ffa07e012115567b29cc460686687528d674ba2fbcb198d9cf4e3943bc0f58149b266bf0366c2ef03c6bb8909225e2a3010f7c29878ba83e1ef388ef56b1dd - no need to download download finished TASK OK
Шаг №2:
Теперь создадим виртуальную машину на основе скачанного контейнера: (я так себе это вижу, может это именуется по-другому)
https://IP&DNS:8006 (https://172.33.33.25:8006) - user&pass
(Доступ к Proxmox и только в Proxmox
) — в правой части есть кнопка с надписью "Create CT"
, нажимаем ее. Запускаем мастер создания LXC Container:
Вкладка General
Node: srv-proxmox
CD ID: 112 (нумерация выбирается мастер по порядку созданным VM)
Hostname: srv-server
Password: задаю пароль внутри системы, к примеру мой тестовый 712mbddr@
Confirm Password: 712mbddr@
Unprivileged containter: снимаем галочку
На заметку: Пароль должен быть больше или равно 5 (пяти) символам прежде чем кнопка Next
станет активной
и нажимаем Next
Вкладка Template
Storage: local
Template: выбираю из списка, пока у меня один скачанный контейнер, т.е. ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz
и нажимаем Next
Вкладка Root Disk
Storage: disk1
Disk size (GiB): 20
и нажимаем Next
Вкладка CPU
Cores: 1
и нажимаем Next
Вкладка Memory
Memory (MiB): 1024
Swap (MiB): 1024
и нажимаем Next
Вкладка Network
Name: eth0 (именование внутреннего интерфейса в системе)
MAC address: auto
Bridge: vmbr0
VLAN Tag: no VLAN
Rate limit (MB/s): unlimited
Firewall: отмечено галочкой (по дефолту)
IPv4: DHCP
IPv6: Static
и нажимаем Next
Вкладка DNS
DNS domain: оставляю по умолчанию "use host settings"
DNS servers: оставляю по умолчанию "use host settings"
и нажимаем Next
Вкладка Confirm
Start after created: я галочку не ставлю, лучше я пока вручную сам запущу.
результирующие настройки, если все хорошо и ничего не собираетесь менять, то нажимаем Finish
После наблюдаю за логом выполнения задачи на создание контейнера:
Logical volume "vm-112-disk-0" created. mke2fs 1.44.5 (15-Dec-2018) Discarding device blocks: 4096/5242880############### ###############done Creating filesystem with 5242880 4k blocks and 1310720 inodes Filesystem UUID: dce47750-f24d-4b9b-9cd5-23ef74751251 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 0/160####### #######done Writing inode tables: 0/160####### #######done Creating journal (32768 blocks): done Multiple mount protection is enabled with update interval 5 seconds. Writing superblocks and filesystem accounting information: 0/160####### #######done extracting archive '/var/lib/vz/template/cache/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz' Total bytes read: 637347840 (608MiB, 134MiB/s) Detected container architecture: amd64 Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ... done: SHA256:y05RbOgdfBd236jDIxrg8V/Csu+Dvr51IVHc6D9M2Zo root@srv-server Creating SSH host key 'ssh_host_dsa_key' - this may take some time ... done: SHA256:pnAzHlWfvWJEssTTrtHqf0OQzpk1DG1aSItHWTnN0oo root@srv-server Creating SSH host key 'ssh_host_rsa_key' - this may take some time ... done: SHA256:X++q+2j4Db5az6K0WWeoVcdcq7oUwO2FNmwWYXkHG90 root@srv-server Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ... done: SHA256:1JjqxxMVeXb2IXn4oluQclMY7oIR8d3kP3EZMLmJQRI root@srv-server TASK OK
Закрываю окно "Task viewer: CT 112 - Create"
Шаг №3:
Чтобы запустить созданный контейнер в ручную:
https://IP&DNS:8006 (https://172.33.33.25:8006) - user&pass
(Доступ к Proxmox и только в Proxmox) — Folder View - Datacenter - LXC Container
, вижу созданный контейнер с указанным в прошлом шаге именем: srv-server
Через правый клик мышью на контейнере под именем 112 (srv-server)
выбираю Start
, затем также как при работе с созданными виртуальными машинами перехожу в элемент меню ">_ Console"
для взаимодействия, сейчас это консоль командной строки. После авторизуюсь, логин по умолчанию Login: root
, а пароль Password
: это тот что Вы указывали при создании контейнера:
Шаг №4:
По-сути это все, дальше с этой системой в контейнере вы работает как если бы вы создали виртуальную машину и установили в нее операционную систему, только здесь все ориентировано на быстродействие, т.к. образ уже подготовлен разработчиками.
В главном интерфейсе после авторизации в Proxmox
у Вас два выбора: создать VM
или создать CT:
ВОт только если прорабатывать на нем сервисы мне кажется реальность и тест буду отличаться. Узнать какие пакеты установлены
root@srv-server:~# dpkg -l root@srv-server:~# uname -a Linux srv-server 5.3.13-1-pve #1 SMP PVE 5.3.13-1 (Thu, 05 Dec 2019 07:18:14 +0100) x86_64 x86_64 x86_64 GNU/Linux - здесь даже специализированное ядро ориентированное на работу внутри гипервизора Proxmox. root@srv-server:~# ip r default via 172.33.33.1 dev eth0 (именование интерфейса с учетом настроек при создании контейнера) proto dhcp src 172.33.33.24 metric 1024 172.33.33.0/24 dev eth0 proto kernel scope link src 172.33.33.24 172.33.33.1 dev eth0 proto dhcp scope link src 172.33.33.24 metric 1024 root@srv-server:~#
Обновляю все пакеты до самого актуального состояния в рамках текущего развернутого долговременного релиза:
root@srv-server:~# rm -Rf /var/lib/apt/lists root@srv-server:~# apt-get update && apt-get upgrade -y root@srv-server:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic
Шаг №5:
Но плюс в использовании контейнеров я вижу, если нужно быстро что-то обкатать, а под рукой нет VM
, устанавливать ее долго. Правда ко мне это не относится, я использую сервис FOG Project
+ автоматизированную установку ОС по сети + скрипт настройки на работу перед использованием. Советую и ВАм приобщиться или же использовать контейнеры.
Пока на этом заметка завершена, кстати интересный функционал, буду использовать. С уважением автор блога Олло Александр aka ekzorchik.