Em fases posteriores da pesquisa é possível que seja necessário provisionar um ambiente para o experimento por isso assisti essa palestra para entender melhor as diferenças entre Máquinas Virtuais e Containers.
Link do vídeo: https://youtu.be/RVJrlT6lGF0
Hands On em Ambientes Virtuais (Canal Instituto de Computação - UFF)
O Hands-on mostrará conceitos e passos principais para criação e manipulação de ambientes virtuais, com contêineres, através de Docker Containers e Máquinas Virtuais como por exemplo, KVM
Material disponível em: https://bit.ly/2EWW3Ku
Interessante as diferenças em deploy de hypervisors:
1) bare metal (server): não tem Host OS, o hypervisor roda direto no hardware da máquina
2) hosted (computador pessoal): o hypervisor roda sob o Host OS, ou seja, depende do sistema operacional da máquina, o que inclui mais uma camada no ambiente
O container garante o isolamento através do contexto e a limitação dos recursos que a aplicação vai utilizar da máquina através do control groups. Com diferentes contextos podemos usar diferentes versões do mesmo software. Com os control groups podemos limitar por exemplo a memória usada. Mas o container depende do kernel da máquina onde foram instalados então as dependências do kernel são definidas a priori porém isso confere mais leveza ao ambiente (menos overhead).
Docker é uma ferramenta de gerenciamento de container. É possível empacotar uma aplicação com os pré requisitos dela e criar uma imagem ISO para ser transportada para outras máquinas. A configuração da máquina fica no arquivo DockerFile onde é especificado desde a ISO do kernel base até o comando de inicialização da aplicação.
A imagem da máquina pode receber um rótulo e uma versão, a versão otimiza a criação da imagem. O tamanho da imagem aqui é bem menor que de uma máquina virtual.
Criação
sudo docker build -t <dono do repo no Docker Hub/nome da image:versão> <local para criar a imagem>
Listar as imagens
sudo docker images
Executar
sudo docker run --name <nome do container> <dono do repo no Docker Hub/nome da image:versão>
Listar os containers que estão em execução
sudo docker ps -a
sudo docker stat
Atenção: o container só permanece em execução se a aplicação estiver ativa!
Para publicar no DockerHub
sudo docker push <dono do repo no Docker Hub/nome da image:versão>
Alterar configurações (uso de recursos)
sudo docker update -m <memória> <nome do container>
No diretório /sys/fs/cgroups existem subdiretórios para cada tipo de recurso dos containers no ar.
Para executar de modo iterativo inclua -it no comando de run.
sudo docker start -it --name <nome do container> <dono do repo no Docker Hub/nome da image:versão>
Atenção: é possível no modo iterativo, executar comandos top e ps e visualizar somente os processos do container !
Comentários
Postar um comentário
Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.