Configuração padrão dos containers a ser instanciado.
# lxc profile edit default
Criando um novo container e iniciando a imagem (quando é SO ele chama systemd init ou upstart). Se for uma aplicação especifica ele chamada diretamente a aplicação.
# lxc init ubuntu:16.04 remote # lxc start remote
Acessar o console TTY do confinamento (PTS)
# lxc console remote
Executando um processo dentro de um container, é interessante para realizar a troca da senha do root.
# lxc exec remote – bash
Alterando a configuração do container criado
# lxc config edit remote
Habilitando para o container iniciar no boot. (lembre-se da aplicação LXD no systemd ou init)
# lxc config get remote boot.autostart < > # lxc config set remote boot.autostart true # lxc config get remote boot.autostart true
Nivel de prioridade de cada container para iniciar.
$ lxc config set {vm-name} boot.autostart.priority integer $ lxc config set {vm-name} boot.autostart.delay integer You can the 10 seconds to wait after the container started before starting the next one using the following syntax: $ lxc config set nginx-vm boot.autostart.delay 10 Finally, define the order to start the containers in by setting with highest value. Make sure db_vm container start first and next start nginx_vm $ lxc config set db_vm boot.autostart.priority 100 $ lxc config set nginx_vm boot.autostart.priority 99
LXD ou LXC sem privilegios de root, pois os processo que executam no container esta nativo no host. E precisa mapear outros os UID ou GID para cada usuário ou grupo dentro do container. (O problema é utilizar FS compartilhado)
root@:~# cat /etc/subuid lxd:100000:65536 root:100000:65536 lxcint:427680:65536 lxcnat:558752:65536 lxcdmz:624288:65536 lxd:900:20000 root:900:20000 root@:~# cat /etc/subgid lxd:100000:65536 root:100000:65536 lxcint:427680:65536 lxcnat:558752:65536 lxcdmz:624288:65536 lxd:900:20000 root:900:20000
O container que se inicia com o usuário LXD remapeia os UID/GID root ou não root começando em 100.000 e podendo ter até 65536 identificadores.
Porem você pode liberar a utilização compartilhada por vai ser necessario remapear no proprio container.
lxd:900:20000 root:900:20000
É permitido utilizar os UID/GID de 900 até 20900 (USUÁRIO:UID/GID INICIAL:QUANTIDADE)
# lxc config edit remote raw.idmap: |- uid 900-11000 900-11000 gid 900-11000 900-11000 # echo -en "uid 900-10000 900-10000\ngid 900-10000 900-10000" | lxc config set remote raw.idmap -
* Com este comando todos os UID/GID entre 900-10000 do HOST são mapeado dentro do container. Adicionar “disk” “path” para um container.
# lxc config device add remote proj disk source=/p path=/p # lxc config device add <container> <nome do disco> disk source=/path/host path=/path/dentro
NFS usa kernel (Opção NFS Ganesha)
* Apenas para um usuário acima para um range. https://insights.ubuntu.com/2017/06/15/custom-user-mappings-in-lxd-containers/ https://tribaal.io/nicer-mounting-home-in-lxd.html https://www.cyberciti.biz/faq/how-to-auto-start-lxd-containers-at-boot-time-in-linux/
Desabilitando dmesg dentro do confinamento
# echo 1 > /proc/sys/kernel/dmesg_restrict
Edite : /etc/sysctl.conf
kernel.dmesg_restrict=1
Administrando Recursos https://stgraber.org/2016/03/26/lxd-2-0-resource-control-412/