🗃️ Как смонтировать каталог хоста внутри контейнера LXD

by itisgood

Смонтируем каталог хоста внутри контейнера LXD.

Создайте каталог в операционной системе хоста.

$ sudo mkdir /mnt/disk/archivebox

Посмотрим файлы subuid и subgid.

$ ls  /snap/lxd/current/etc/
bash_completion.d  ethertypes  logrotate.conf  lvm  nanorc  protocols  ubuntu-sb.crt  vimrc

Пакет Snap не предоставляет эти файлы, поэтому начало диапазона uid/gid будет равно 1000000.

Это означает, что вам нужно использовать комбинацию 1002000:1002000 uid:gid, чтобы получить 2000:2000 uid:gid внутри гостевого экземпляра.

$ sudo chown -R 1002000:1002000 /mnt/disk/archivebox

Смонтируйте каталог хоста /mnt/disk/archivebox в /opt/archivebox внутри экземпляра archivebox.

$ sudo -i lxc config device add archivebox archivebox_directory disk source=/mnt/disk/archivebox path=/opt/archivebox
Device archivebox_directory added to archivebox

Каталог будет создан автоматически, а определенные пользователи и группы будут отражать идентификаторы подчиненных пользователей/групп.

$ sudo -i lxc exec archivebox -- stat /opt/archivebox
  File: /opt/archivebox
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 800h/2048d      Inode: 36306945    Links: 9
Access: (0755/drwxr-xr-x)  Uid: ( 2000/archivebox)   Gid: ( 2000/archivebox)
Access: 2021-12-19 16:22:54.660738431 +0000
Modify: 2021-12-19 20:09:24.424730331 +0000
Change: 2021-12-19 20:09:24.424730331 +0000
 Birth: 2021-12-19 16:22:54.660738431 +0000

В качестве альтернативы, он будет принадлежать пользователю 65534/nobody, если пропустить настройку идентификаторов подчиненных пользователей/групп.

Отображение конфигурации устройства для экземпляра archivebox

$ sudo -i lxc config device show archivebox
archivebox_directory:
  path: /opt/archivebox
  source: /mnt/disk/archivebox
  type: disk

Редактирование конфигурации:

$ sudo -i lxc config edit archivebox
### This is a YAML representation of the configuration.
### Any line starting with a '# will be ignored.
###
### A sample configuration looks like:
### name: instance1
### profiles:
### - default
### config:
###   volatile.eth0.hwaddr: 00:16:3e:e9:f8:7f
### devices:
###   homedir:
###     path: /extra
###     source: /home/user
###     type: disk
### ephemeral: false
###
### Note that the name is shown but cannot be changed

architecture: armv7l
config:
  image.architecture: armhf
  image.description: Debian bullseye armhf (20211219_05:25)
  image.os: Debian
  image.release: bullseye
  image.serial: "20211219_05:25"
  image.type: squashfs
  image.variant: default
  volatile.base_image: c5cb7135fbb8785c9971daf29709d4840efc3b2b4397684752ddd0f34f078dc5
  volatile.eth0.host_name: vethd3c7b49e
  volatile.eth0.hwaddr: 00:16:3e:38:03:48
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.power: RUNNING
  volatile.uuid: 3cc4ff6e-e343-4312-b285-68b75272bdb0
devices:
  archivebox_directory:
    path: /opt/archivebox
    source: /mnt/disk/archivebox
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""

Удалим конфигурацию устройства.

$ sudo -i lxc config device remove archivebox archivebox_directory
Device archivebox_directory removed from archivebox

см. также:

 

You may also like

Leave a Comment