Linux Containers – iniciando
Como eu disse no comecinho da série, primeiro tive contato com o Docker para depois saber a respeito do LXC. Isso se deve ao fato de que, quase sempre a gente toma conhecimento das coisas mais simples e fáceis antes de conhecermos as mais ‘complicadas’, embora no caso do LXC isso não seja plenamente verdade. O LXC na verdade é bem mais simples que o docker e inclusive serve-lhe de base (creio que mencionei isso no post anterior… se não o havia feito, agora foi :))
A verdade é que mesmo tendo surgido por volta de 2008 inserido ao kernel como uma forma de virtualização em nível de kernel, o LXC só começa a aparecer de leve em 2013. Isso nos dá cerca de 5 (cinco) anos de desenvolvimento antes de ser disponibilizado como ‘production ready’. Hoje o LXC encontra-se na versão 1.0, bastante estável e ainda em franco desenvolvimento.
Direto ao que interessa
Bom, vou prosseguir apresentando o modo de instalação do LXC, mas vou abordar apenas a instalação em ambiente Ubuntu®. No final do post, passo algumas dicas de links sobre instalação em outros gnu/linux flavors.
Instalando LXC
Fazer a instalação no LXC é simples. Apenas isso:
apt-get install lxc
Ao rodar o comando acima, o apt-get irá tratar de identificar as dependências necessárias e as instalar.
Feito isso, execute o comando lxc-checkconfig.
O retorno deverá ser algo como a imagem a seguir:

No Ubuntu® as configurações necessárias também serão definidas por padrão, no entanto, para maior segurança na utilização, podemos adicionar um setup básico para uso do lxc sem privilégios administrativos na máquina. Basta-nos seguir as instruções presentes no guia do lxc. Os passos são apresentados a seguir:
Para criar containers sem privilégios, alguns passos adicionais são necessários. Você precisará criar um arquivo de configuração padrão definindo seus mapeamentos de usuário e configuração de rede, assim como configurar o host para permitir que um usuario sem privilégios possa vincular-se à rede do host. O exemplo abaixo assumr que suas variações de usuário e grupo mapeadas sejam 100000-65536.
mkdir -p ~/.config/lxc
echo “lxc.id_map = u 0 100000 65536” > ~/.config/lxc/default.conf
echo “lxc.id_map = g 0 100000 65536” >> ~/.config/lxc/default.conf
echo “lxc.network.type = veth” >> ~/.config/lxc/default.conf
echo “lxc.network.link = lxcbr0” >> ~/.config/lxc/default.conf
echo “$USER veth lxcbr0 2” | sudo tee -a /etc/lxc/lxc-usernet
Para identificar seu id de usuario e grupo, execute o seguinte comando:
grep <seu username> /etc/sub* 2>/dev/null
Utilizando o LXC
Podemos acessar os comandos do lxc utilizando a interface em linha de comandos (CLI) ou partirmos para usar uma opção de interface gráfica como o lxc-webpanel. Por padrão o lxc oferece uma suite de comandos que cobrirá as suas funcionalidades. Todos os comandos são ‘montados’ seguindo a forma ‘lxc-<command>’.
Considerando que a necessidade de ser ‘produtivo’ seja uma regra e que o uso de interface gráfica tende a fazê-lo mais produtivo em alguns casos, então você irá optar por utilizar a interface gráfica com o LXCWebPanel. Perfeito… ou não. Optar por uma coisa ou outra pode significar, sim, que você ‘conhece’ mas não ‘domina’ a tecnologia por trás do lxc. Por outro lado, pode significar também que você é um preguiçoso :p .
Para efeitos de aprendizagem e domínio de funcionalidades, porém, saber utilizar a CLI é fundamental. Desculpe se parecer ofensivo, mas se você é um usuário de sistemas GNU/Linux e tem medo de usar a CLI, você deve superar esse ‘medo’ irracional. A interface de linha de comandos oferece maior controle sobre tudo o que você pretender fazer utilizando um SO *nix-based. Não vem ao caso, mas mesmo os Windows e Mac OSX oferecem poderosas CLI. Cabe a você superar o medo. Nunca esqueça:
Nesse post, vou abordar apenas a CLI e falar sobre a utilização do comando lxc-config que é voltado a executar ‘queries’ sobre os itens de configuração do lxc. Dedicarei um post exclusivo aos comandos de criação, clonagem, remoção/destruição e anexação de containers.
lxc-config
Podemos usar o lxc-config para consultar os valores ou apenas listar os itens de configuração. A sintaxe do comando:
lxc-config [-l | <nome do item>]
Ao executar o lxc-config apenas com a opção ‘l’ ele irá listar os itens de configuração do lxc:

Para checar o valor do item de configuração utilizamos, por exemplo, lxc-config lxc.lxcpath.

Sei que demorei bastante entre um post e outro mas a razão é que estava trabalhando uma ideia e procurando aprimoramento profissional, estudando…
No próximo post, nesse fim de semana, vou abordar de maneira breve os comandos relacionados a criação dos containers e comentar ainda algumas outras características so LXC. Por enquanto é só.
Valeu pela leitura e se tiver alguma pergunta, só falar.
Como prometido:
LXC no SUSE: https://www.suse.com/documentation/sles11/singlehtml/lxc_quickstart/lxc_quickstart.html
LXC no RH7: http://www.certdepot.net/rhel7-get-started-linux-containers/
No RH 6 se não estou enganado, não vira muito bem não, galera. Se quiserem tentar, ou tiverem feito e quiserem me dar uma dica, eu aceito, ó.
Agora, pra descontrair um pouco, o que acho legal é os caras procurando uma forma de usar ‘containers’ em ambientes Mac OS e Windows… Acabam gerando mais trabalho.
Deixe um comentário