Como já dito no artigo anterior, LXC – Linux Containers, é uma forma de virtualização com recurso a containers no sistema operativo Linux. Vamos então criar o nosso primeiro container e testar o mesmo. Para tal vamos usar o sistema operativo Ubuntu 18.04.1 LTS versão Server. Não é obrigatório o uso desta distribuição, podem usar a distribuição que preferirem desde que tenha um kernel recente.
Ao instalar a versão server do ubuntu o LXC é também instalado por omissão não sendo necessária a sua instalação após a instalação do sistema operativo.
Após a instalação do sistema operativo é aconselhável fazer os updates que possam existir. Lembrem-se se não usarem o utilizador root devem colocar o comando sudo antes.
sudo apt update
sudo apt upgrade
De forma a podermos a usar o lxc devemos inicializar o lxd que é o gestor de containers, mais uma vez já vem instalado por omissão no ubuntu server.
Comando para iniciar
sudo lxd init
De seguida será feitas uma série de perguntas sobre as configurações iniciais, para propósitos de testes como é o caso as opções por omissão são mais que suficientes. Apenas iremos alterar o espaço disponível (usamos 5GB) para containers. Isso é necessário pois o disco da nossa máquina apenas tem 15GB. O nome da pool criada que foi “mypool”.
Como já referido no artigo anterior existem os unpriviliged containers que podem ser criados por um utilizador normal ou pelo utilizador root.
Criar containers usando um utilizador normal
É necessário criar um conjunto de UID (User ID) e GID (Group ID) específicos para ser possível criar containers desta forma. Isto faz com que sejam os mais seguros para o nosso Sistema Operativo (SO). É usado um mapa de UID e GID que não coincidam com os SO da máquina física, por exemplo desta forma garantimos que o UID do root no container não coincide com o da máquina física.
Isto tipo de containers vai fazer com que algumas operações necessárias par aa criação dos containers não sejam possíveis, por exemplo:
– Montar um sistema de ficheiros;
– Quaisquer operações com UID e GID fora dos definidos previamente.
Assim a maior parte dos templates disponibilizados podem não funcionar, para tal
Configurações LXC
Para definir deve-se editar os ficheiros /etc/subuid e /etc/subgid, no caso do ubuntu já devem estar preenchidos ambos os ficheiros.
Ambos os ficheiros têm o mesmo conteúdo pois o ubuntu cria o grupo de utilizador com o mesmo valor que o de utilizador por omissão.
Vamos agora finalmente começar a usar o LXC. Começamos por verificas se já temos containers para isso usamos o comando lxc list que dará um resultado semelhante à figura 3. No nosso caso ainda não temos nenhum container.
Vamos então verificar que imagens/templates existem online para podermos descarregar para a nossa máquina. Para tal podemos fazer uma pesquisa usado o seguinte comando e possíveis variações do mesmo lxc image list images: ‘debian’ . Neste comando estamos a pesquisar imagens que tenham a palavra debian no seu nome, podemos ajustar a expressão de pesquisa ao que quisermos. Como a opção debian devolve muitos resultados vou pesquisar por outra distribuição. Escolhi o CentOS, com o comando lxc image list images: ’centos’.
De seguida podemos escolher qual a imagem que queremos, vamos escolher a mais recente versão 7 do CentOS, para o nosso container e instalar a mesma usando o comando:
lxc launch images:centos/7
Quando a instalação terminar deverá aparecer um resultado semelhante à figura 6. Como não indicamos um nome para o container o habitual é ficar com o nome da distribuição.
Aceder ao container
Vamos então aceder ao nosso container, neste caso acedemos a um shell do tipo bash e logo como root.
lxc exec hot-catfish bash
Reparem que a prompt mudou, estão agora como root num container que corre CentOS. Esse container, por sua vez, corre num sistema operativo ubuntu server.
Como container foi criado com os privilégios de um utilizador normal podem agora trabalhar no container de forma isolada do sistema operativo da vossa máquina sem se preocuparem em estragar o sistema operativo nativo da vossa máquina.
Se quiserem voltar ao vosso SO nativo basta escrever o comando exit.
Podem digitar o comando lxc list e verificam que já têm um container a correr, caso queiram parar o container podem usar o comando lxc stop hot-catfish, caso queiram arrancar o container lxc start hot-cat-fish.
Existem ainda mais opções que podem ser exploradas nos containers.
Este pode ser um ponto de partida para quem quiser depois explorar mais.
Artigos relacionados com LXC – Linux Containers