Diferenças entre edições de "Linux Containers"
Linha 59: | Linha 59: | ||
lxc storage create pool1 dir=/home/containers | lxc storage create pool1 dir=/home/containers | ||
+ | |||
+ | == Exportar um dispositivo para ser usado pelo ''container'' == | ||
+ | |||
+ | === Exportar uma ''webcam'' === | ||
+ | |||
+ | Exportar uma ''webcam'' é fácil. As ''webcams'', quando devidamente detectadas, são apresentadas com ficheiros no '''devfs''' (em /dev). Neste caso, serão os dispositivos '''/dev/video*''' em que o * seria substituído por um número. Por exemplo, a primeira seria apresentada como '''/dev/video0''' | ||
+ | |||
+ | Para adicionar a ''webcam'' ao ''container'', usa-se o seguinte comando: | ||
+ | |||
+ | sudo lxc config device add <nome do container> video2 unix-char path=/dev/video<número> gid=<grupo> | ||
+ | |||
+ | substituindo '''<nome do container>''', '''<número>''' e '''<grupo>''' apropriadamente. A título de exemplo: | ||
+ | |||
+ | sudo lxc config device add u1804 video2 unix-char path=/dev/video2 gid=100 |
Revisão das 04h32min de 18 de março de 2021
Índice
Introdução
LXC ou Linux Containers é uma funcionalidade disponível em várias distribuições, e que pode ser adicionada manualmente a outras. É baseada em funcionalidades do kernel do Linux tais como CGROUPS e Namespaces, fornecendo ambientes isolados parecidos com chroot, mas mais avançados. É um meio termo entre uma máquina virtual e um chroot.
Instalação
Manjaro
Para instalar, basta executar os seguintes comandos:
sudo pacman -S lxc sudo pacman -S lxd
A configuração default de containers em Manjaro precisa de uns ajustes adicionais. Primeiro é necessário activar o bit setuid nos comandos /usr/bin/newuidmap e /usr/bin/newgidmap:
sudo chmod 4755 /usr/bin/new?idmap
Depois é necessário editar os ficheiros de configuração dos mapeamentos (e criá-los se não existirem) de modo a que as seguintes linhas existam neles (substituindo as existentes se forem mais restritivas:
/etc/subuid e /etc/subgid:
root:1000000:1000000000 lxd:1000000:1000000000
Alternativamente, em vez de se editar estes ficheiros, o mesmo pode ser conseguido usando o comando usermod com as opções --add-subuids e --add-subgids.
Ubuntu
Para instalar basta executar o seguinte comando:
sudo apt install lxc lxd
Nota: A partir do Ubuntu 20.04 inclusive, ao tentar-se instalar o LXD via apt, o que vai acontecer é o apt instalar o snap (se já tiver sido removido) e instalar o lxd a partir do snap. Ew.
TODO
Manual
TODO
Aprovisionamento
Para iniciar, é preciso, primeiro, correr o comando lxd init, respondendo às perguntas apresentadas.
TODO
Criação de uma storage pool
Como directório
Para criar uma storage pool como directório, deverá usar-se o seguinte comando:
lxc storage create <nome_da_pool> dir=<caminho>
Neste comando deverá substituir <nome_da_pool> e <caminho> pelo nome que pretende dar à pool e o caminho onde a pretende criar, respectivamente. Por exemplo:
lxc storage create pool1 dir=/home/containers
Exportar um dispositivo para ser usado pelo container
Exportar uma webcam
Exportar uma webcam é fácil. As webcams, quando devidamente detectadas, são apresentadas com ficheiros no devfs (em /dev). Neste caso, serão os dispositivos /dev/video* em que o * seria substituído por um número. Por exemplo, a primeira seria apresentada como /dev/video0
Para adicionar a webcam ao container, usa-se o seguinte comando:
sudo lxc config device add <nome do container> video2 unix-char path=/dev/video<número> gid=<grupo>
substituindo <nome do container>, <número> e <grupo> apropriadamente. A título de exemplo:
sudo lxc config device add u1804 video2 unix-char path=/dev/video2 gid=100