LXC – Criar o primeiro container

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”.

Figura 1 - lxd init as opções escolhidas
Figura 1 – lxd init as opções escolhidas

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.

Figura 2- conteúdo dos ficheiros /etc/subuid e /etc/subgid
Figura 2- conteúdo dos ficheiros /etc/subuid e /etc/subgid

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.

Figura 3 – Resultado do comando lxc list
Figura 3 – Resultado do comando lxc list

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’.

Figura 4- Resultado do comando lxc image list images: 'centos'
Figura 4- Resultado do 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

Figura 5 - A fazer download e a instalar a imagem escolhida
Figura 5 – A fazer download e a instalar a imagem escolhida

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.

Figura 6 - Instalação concluída do container
Figura 6 – Instalação concluída do container

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.

Figura 7- Prompt do container com CentOS
Figura 7- Prompt do container com CentOS

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

Gearbest Apenas $16.99  para Tanix TX3 Mini L TV Box com cupon"GBTXL " por dia promotion
Apenas $16.99 para Tanix TX3 Mini L TV Box com cupon"GBTXL " por dia

Sobre Nuno Fonseca

Licenciado em Engenharia Informática pelo Instituto Superior de Engenharia do Porto. Instrutor CISCO. Formador de TI na ATEC e CEASE.

Veja também

Alley Cat

Queres rever os jogos do MS-DOS?

Até 1995 o sistema operaivo da Microsoft era o MS-DOS (Microsoft Disk Operating System) baseado …

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.