Что есть контейнер — это такой мини образ операционной системы 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

Скачиваю LXC контейнер Ubuntu 18.04 от разработчиков Proxmox

Лог процесса скачивания (чтобы просто знать):

()
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

Представление в Web-интерфейсе LXC контейнеров

Через правый клик мышью на контейнере под именем 112 (srv-server) выбираю Start, затем также как при работе с созданными виртуальными машинами перехожу в элемент меню ">_ Console" для взаимодействия, сейчас это консоль командной строки. После авторизуюсь, логин по умолчанию Login: root, а пароль Password: это тот что Вы указывали при создании контейнера:

Взаимодействие с Ubuntu 18.04 внутри контейнера, к примеру через >_ Console

Шаг №4: По-сути это все, дальше с этой системой в контейнере вы работает как если бы вы создали виртуальную машину и установили в нее операционную систему, только здесь все ориентировано на быстродействие, т.к. образ уже подготовлен разработчиками.

В главном интерфейсе после авторизации в Proxmox у Вас два выбора: создать VM или создать CT:

Proxmox позволяет создавать VM or LXC

ВОт только если прорабатывать на нем сервисы мне кажется реальность и тест буду отличаться. Узнать какие пакеты установлены

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.