Os recipientes são úteis por vários motivos. Ele isola os aplicativos do resto do sistema. Eles são portáteis e fáceis de clonar e / ou transferir para outros sistemas operacionais. E no caso Sistema Linux , Funciona da mesma forma em qualquer distribuição, sem as modificações necessárias. Se você precisar mover um contêiner de RedHat para Ubuntu , Deve ser apenas um processo de cópia simples.
Estivador É uma solução popular projetada para caber em um único aplicativo: por exemplo, um servidor Banco de dados MySQL. Parece-se LXD De certa forma, ele é projetado para acomodar um sistema operacional inteiro. Isso o torna útil para alguns cenários. Por exemplo, você pode Crie um contêiner LXD e instale o servidor de banco de dados e o servidor http. Então você pode Crie um site WordPress interno. Agora você pode alternar da nuvem para a nuvem apenas movendo este contêiner LXD quando for necessário, quando você não estiver satisfeito com seu provedor anterior. Como é fácil clonar um contêiner, você pode até fazer o download Seu site Para vários provedores de serviços de nuvem para criar uma configuração redundante de alta disponibilidade.
LXD não funciona em máquinas virtuais como QEMU ou VirtualBox , O que significa que é muito rápido, o que fornece uma velocidade de execução quase local.
Instale e configure o LXD
Abra o Terminal e instale o LXD, bem como os utilitários ZFS, que o ajudarão a acelerar alguns processos e economizar espaço em disco ao trabalhar com contêineres.
sudo apt install zfsutils-linux lxd
Início da configuração do LXD.
sudo lxd init
Pressione ENTER para selecionar os valores padrão.
Para o tamanho em GB do novo dispositivo de anel (mínimo 1 GB) [padrão = 15 GB], você pode escolher outro valor, como "50 GB" se souber que criará muitos contêineres.
Encontre e execute uma imagem de distro LXD
Para listar todas as imagens do Ubuntu:
lxc image list ubuntu: arch=amd64
Haverá muitos resultados. Você pode escolher omitir arco = amd64 Se você precisar de imagens para outras plataformas, como processadores ARM (os dispositivos Raspberry Pi usam essa arquitetura).
Na imagem anterior, os resultados eram limitados (com | cabeça) para facilitar a leitura. Impressão foi destacado Ubuntu 18.04 (84a71299044b) Se você fosse executar um contêiner com esta distribuição, o comando seria:
lxc launch ubuntu: 84a71299044b
No momento, isso retornará com o erro de permissão negada. Deve estar no grupo "lxd". Seu usuário já foi adicionado a este grupo, mas para ativá-lo, você deve fazer logout e login novamente. Se você quiser evitar isso, use este comando, substituindo “usuário” pelo seu nome de usuário:
exec su - user
Agora, os comandos lxc são executados sem sudo.
Executando contêineres LXD com distribuições não Ubuntu
Este comando mostrará as outras distribuições disponíveis:
lxc image list images: arch=amd64
Para iniciar uma imagem, em vez de uma impressão digital, você também pode usar um alias se encontrar um disponível na lista.
lxc launch images:debian/9
Se você anexar uma string no final, poderá escolher um nome para o seu contêiner:
lxc launch images:debian/9 wordpress-site
Gerenciamento de contêineres LXD
Para listar todos os contêineres:
lxc list
A coluna é “IPV4Especialmente importante se você tiver algum serviço em execução nessa situação. Por exemplo, se for um servidor http do apache Em execução em uma instância, a entrada de "10.234.232.246No navegador, ele exibirá o site hospedado no contêiner.
Para parar o contêiner:
lxc stop name_of_container
Isso pode levar muito tempo (ou falhar) com distribuições não Ubuntu. É melhor você pegar um embrulho para o contêiner, e quando você entrar, entre desligamento do systemctl Para parar.
Se tudo mais falhar, você pode forçar uma parada com:
lxc stop name_of_container --force
Para começar:
lxc start name_of_container
Para mover dentro do seu contêiner:
lxc shell name_of_container
Você pode instalar o software com “sudo apt installE faça tudo o mais que você faria em uma distribuição regular do Linux, por exemplo, configurar um servidor apache. Quando quiser sair da lixeira, basta digitar:
exit
Transferir arquivos de / para contêineres LXD
Para fazer upload de um arquivo para o seu contêiner:
lxc file push /path/to/local/file name_of_container/path/to/uploaded/file
Inclua o nome do arquivo a ser criado, não apenas o diretório onde deseja carregá-lo. Aqui está um exemplo:
lxc file push lxd-apt-install.png accurate-colt/var/www/website/upload.png
Para fazer upload de um diretório em vez de um arquivo:
lxc file push /path/to/local/directory name_of_container/path/to/remote/directory --recursive --verbose
Exemplo:
lxc file push /bin accurate-colt/tmp --recursive --verbose
Para baixar um diretório de seu contêiner para seu sistema operacional principal:
lxc file pull name_of_container/path/to/remote/directory /path/to/local/directory --recursive --verbose
Exemplo:
lxc file pull accurate-colt/tmp /tmp --recursive --verbose
Conclusão
Isto cobre Uso primário para contêineres LXD. Existem recursos mais avançados, como instantâneos, back e restrições de recursos, como CPU وRAM , Contêineres de clonagem e assim por diante. Pode ser abordado em um programa educacional no futuro, se percebermos que nossos leitores estão interessados no assunto.