Избегайте использования привилегированных контейнеров в продакшен средах из-за ограниченной изоляции между контейнером и хостом, поскольку привилегированные контейнеры запускаются в хост–системе от имени пользователя root, что создает риски для безопасности, но обеспечивает прямой доступ к хост–устройствам. Это делает их подходящими для сценариев, в которых требуется быстрый доступ к данным из физического хранилища, их резервное копирование или восстановление.
🐳 Что такое Docker без root (rootless)?
Конфигурация Proxmox
Отобразим доступное хранилище.
sudo pvesm status
Name Type Status Total (KiB) Used (KiB) Available (KiB) %
local dir active 249175008 6310156 230134692 2.53%
local-lvm lvmthin active 681816064 5181802 676634261 0.76%
local-nvme dir active 653463208 2104 620193548 0.00%
local-nvme-lvm lvmthin active 1262592000 0 1262592000 0.00%
Отобразим доступные шаблоны контейнеров.
sudo pveam available --section system
system almalinux-10-default_20250930_amd64.tar.xz
system almalinux-9-default_20240911_amd64.tar.xz
system alpine-3.22-default_20250617_amd64.tar.xz
system centos-9-stream-default_20240828_amd64.tar.xz
system debian-12-standard_12.12-1_amd64.tar.zst
system debian-13-standard_13.1-2_amd64.tar.zst
system devuan-5.0-standard_5.0_amd64.tar.gz
system fedora-42-default_20250428_amd64.tar.xz
system gentoo-current-openrc_20250508_amd64.tar.xz
system openeuler-25.03-default_20250507_amd64.tar.xz
system opensuse-15.6-default_20240910_amd64.tar.xz
system rockylinux-10-default_20251001_amd64.tar.xz
system rockylinux-9-default_20240912_amd64.tar.xz
system ubuntu-22.04-standard_22.04-1_amd64.tar.zst
system ubuntu-24.04-standard_24.04-2_amd64.tar.zst
system ubuntu-25.04-standard_25.04-1.1_amd64.tar.zst
Загрузите шаблон контейнера.
sudo pveam download local debian-13-standard_13.1-2_amd64.tar.zst
downloading http://download.proxmox.com/images/system/debian-13-standard_13.1-2_amd64.tar.zst to /var/lib/vz/template/cache/debian-13-standard_13.1-2_amd64.tar.zst
calculating checksum of existing file...OK, got correct file already, no need to download
Перечислим загруженные шаблоны контейнеров.
sudo pveam list local
NAME SIZE
local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst 123.70MB
Отобразим доступные сетевые мосты.
sudo pvesh get /nodes/$(hostname)/network --type bridge --output-format yaml
---
- active: 1
address: 192.168.65.30
autostart: 1
bridge_fd: '0'
bridge_ports: nic0
bridge_stp: off
cidr: 192.168.65.30/22
families:
- inet
gateway: 192.168.64.1
iface: vmbr0
method: static
method6: manual
netmask: '22'
priority: 4
type: bridge
Получим следующий доступный идентификатор контейнера.
sudo pvesh get /cluster/nextid
105
Создадим привилегированный контейнер.
sudo pct create 105 local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst \
--hostname ct-debian13-privileged \
--onboot 1 \
--password c0nv3rg3nce37 \
--memory 2048 \
--cores 2 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--unprivileged 0 \
--features nesting=1
Logical volume "vm-105-disk-0" created.
Logical volume pve/vm-105-disk-0 changed.
Creating filesystem with 2097152 4k blocks and 524288 inodes
Filesystem UUID: 493510e8-09eb-4ee0-bca9-5ae2681d59f7
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
extracting archive '/var/lib/vz/template/cache/debian-13-standard_13.1-2_amd64.tar.zst'
Total bytes read: 551505920 (526MiB, 512MiB/s)
Detected container architecture: amd64
Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ...
done: SHA256:sJl/i6fJR4gxnTPyyJlu+XJhGQD8bpUkI/cMmdu9jis root@ct-debian13-privileged
Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ...
done: SHA256:INQN0ZzYMqU7TLWtuhfHTfdTFRCgS+DghsbZ4pI2IhQ root@ct-debian13-privileged
Creating SSH host key 'ssh_host_rsa_key' - this may take some time ...
done: SHA256:cKVgOyJ4R9p8fddPbihKIqx4kzG7waWyi5dnG4/XxWA root@ct-debian13-privileged
Определим состояние контейнера.
sudo pct status 105
status: stopped
Запустим контейнер.
sudo pct start 105
sudo pct status 105
status: running
Проверьте доступ к консоли.
sudo pct console 105
Connected to tty 1
Type <ctrl+a q=""> to exit the console, <ctrl+a ctrl+a=""> to enter Ctrl+a itself
Debian GNU/Linux 13 ct-debian13-privileged tty1
ct-debian13-privileged login: </ctrl+a></ctrl+a>
Проверьте конфигурацию контейнера.
sudo pct config 105
arch: amd64
cores: 2
features: nesting=1
hostname: ct-debian13-privileged
memory: 2048
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:E9:5D:53,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-105-disk-0,size=8G
swap: 512
Определим устройство хранения данных, к которому будет получен доступ из привилегированного контейнера.
lsblk -o NAME,UUID /dev/sdb
NAME UUID
sdb
└─sdb1 e4c29014-145b-4c8d-bcc8-a5af6d91fb21
Доступ к устройствам хранения данных
Cуществует два способа доступа к основным устройствам хранения данных из привилегированного контейнера: сквозной доступ к устройству и точки монтирования.
Сквозной доступ к устройству предоставляет доступ к блочному устройству raw, предоставляя контейнеру полный контроль над подключением и операциями с файловой системой.
Точки подключения автоматически подключают устройство при запуске контейнера, что более удобно для постоянного доступа.
Сквозной доступ к устройству
Создадим сквозной доступ к устройству.
sudo pct set 105 -dev0 /dev/sdb1
Проверьте конфигурацию контейнера, чтобы убедиться в проходимости устройства.
sudo pct config 105
arch: amd64
cores: 2
dev0: /dev/sdb1
features: nesting=1
hostname: ct-debian13-privileged
memory: 2048
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:E9:5D:53,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-105-disk-0,size=8G
swap: 512
Убедитесь, что сквозной доступ к устройству работает должным образом.
sudo pct exec 105 --- mount /dev/sdb1 /mnt
sudo pct exec 105 -- df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 1.8T 109G 1.6T 7% /mnt
Когда закончите, отключите устройство.
sudo pct exec 105 -- umount /dev/sdb1
Удалите сквозной доступ к устройству.
sudo pct set 105 --delete dev0
Перезагрузите контейнер, чтобы применить изменения конфигурации.
Точка подключения устройства
Создайте точку подключения устройства, используя путь к устройству на основе UUID для надежной идентификации.
sudo pct set 105 -mp0 /dev/disk/by-uuid/e4c29014-145b-4c8d-bcc8-a5af6d91fb21,mp=/mnt/e4c29014-145b-4c8d-bcc8-a5af6d91fb21,backup=0
Проверьте конфигурацию контейнера, чтобы проверить точку монтирования.
sudo pct config 105
arch: amd64
cores: 2
features: nesting=1
hostname: ct-debian13-privileged
memory: 2048
mp0: /dev/disk/by-uuid/e4c29014-145b-4c8d-bcc8-a5af6d91fb21,mp=/mnt/e4c29014-145b-4c8d-bcc8-a5af6d91fb21,backup=0
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:E9:5D:53,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-105-disk-0,size=8G
swap: 512
Убедитесь, что точка монтирования работает должным образом.
sudo pct exec 105 -- ls -lh /mnt/e4c29014-145b-4c8d-bcc8-a5af6d91fb21/
total 20K
drwx------ 5 988 988 4.0K Jan 4 00:28 aptly
drwx------ 2 root root 16K Jan 3 21:06 lost+found
Удалите точку монтирования.
sudo pct set 105 --delete mp0
Перезагрузите контейнер, чтобы применить изменения конфигурации.
Восстановление системы
Остановите и уничтожьте контейнер, когда он больше не понадобится.
sudo pct stop 105
sudo pct destroy 105
см. также: