Microtutorial de Containers LXC/LXD

Para começar será necessário uma máquina (real ou virtual) com Linux (se não tiver uma veja o destaque na lista de links mais abaixo!). Se for uma distribuição desktop você poderá usar o navegador da própria máquina para acessar um servidor (ou serviços) web rodando no container sem ter que configurar uma bridge ou redirecionar portas. A maior parte das distribuições já possui os containers LXC instalados, mas se não for seu caso, instale o pacote snap. Opa, snap é um tipo de container para distribuição de aplicações! Utilize o comando abaixo. A maior parte dos comandos requer permissões de superusuário, portanto será necessário utilizar o comando sudo antes deles.

sudo snap install lxd

Você até pode pular essa parte, mas para realizar a configuração inicial dos containers digite:

sudo lxd init

Em geral pode-se aceitar as configurações padrão. Umas das opções possíveis fora do padrão é a possibilidade de disponibilizar os containers para outras máquinas através da rede local.

O LXD é a API desenvolvida pela Ubuntu para interagir com os containers LXC e é utilizada em todas as distribuições.

Para criar um primeiro container digite o comando abaixo. Esse primeiro container poderá demorar um pouco, pois será necessário baixar a imagem primeiro para poder criá-lo:

sudo lxc launch ubuntu: nomedocontainer

Para visualizar o(s) container(s) criado(s), o status e o endereço IP:

sudo lxc list

Para executar um comando dentro do container digite:

sudo lxc exec nomedocontainer -- comando

Você verá a saída no próprio terminal. Para acessar o terminal (bash) do container digite:

sudo lxc exec nomedocontainer -- bash

Use exit para sair.

É possível parar, iniciar, e deletar containers usando lxc start, lxc stop e lxc delete.

Para exibir as informações do container use sudo sudo lxc info nomedocontainer. Digite lxc help para mais opções de comandos.

Caso queira criar um container de outra distro, veja as disponíveis no servidor oficial de imagens (https://images.linuxcontainers.org) com o comando abaixo. É possível usar imagens personalizadas de outros servidores também:

lxc image list images:

Se quiser acrescente um filtro, por exemplo: lxc image list images: | grep centos

Para criar um container a partir de uma dessas imagens digite, por exemplo:

sudo lxc launch images:centos/7 nomedooutrocontainer

Apenas o comando lxc image list lista as imagens locais. Também é possível gerenciá-las. Os containers criados a partir das imagens locais são disparados quase que instantaneamente, então pode-se deletar os containers criados sem nenhum problema se quiser. Ou pará-los, o que é sempre uma boa ideia se não estiverem em uso. Afinal os containers que estiverem "rodando" voltarão a ser executados automaticamente ao se reiniciar o sistema. Já os containers que estiverem parados assim permanecerão.


Agora que você já sabe os primeiros passos, aproveite os seguintes links (todos em inglês):


Voltar para Máquinas Virtuais e Containers, ou Especial Nanocurso de Linux.