Docker
Configuração de ambiente virtual utilizando Docker¶
Docker é um projeto de código aberto que automatiza a implantação de aplicativos dentro de recipientes de software, fornecendo uma camada adicional de abstração e automação de virtualização de sistemas.
"Docker é uma ferramenta que permite empacotar uma aplicação com todas as suas dependências em uma unidade padronizada para desenvolvimento de software.”
Instalação¶
Utilização¶
Faz uma listagem das imagens em seu computador
$ docker images
Baixa uma imagem em sua máquina
$ docker pull nome_imagem
Envia a imagem para repositório remoto do Docker Hub
$ docker push nome_imagem
Cria um container utilizando uma imagem existente ou se ela não estiver adicionada a sua listagem de imagens, ele procurará no docker hub.
$ docker run -it nome_imagem
Lista os containers em execução
$ docker ps
Lista os containers em execução e os desligados
$ docker ps -a
Para o container ou inicia o containers
$ docker stop/start nome_container
Exclui container ou imagem
$ docker rm/rmi nome_container/nome_imagem
Benchmarking¶
Vantagens¶
- Containers fácilmente portáveis: você pode criar uma imagem de toda a configuração e aplicativos instalados em seu container, transferir e instalar em outro host com Docker previamente instalado.
- Versionamento: Docker permite que você versione as alterações de um container de uma forma muito semelhante ao git. Permitindo portanto verificar as diferenças entre versões, commitar novas versões e voltar (rollback) versões.
- Reutilização de componentes: como citado anteriormente as imagens criadas podem ser reutilizadas, vamos supor que diversas de suas aplicações utilizem um stack com Apache e MySQL, desta maneira você instala e configura ambos e cria uma imagem base, contendo estes itens, que representará a sua instalação e configuração, desta maneira esta imagem poderá ser reutilizada em quantos forem os containers que a necessite
- Compartilhamento: o Docker Hub, citado no incício, já está povoado de milhares de containers com as mais diversas aplicações instaladas e configurações aplicadas, desta maneira você pode rápidamente criar sua aplicação com uma base desenvolvida por outra pessoa, ou ainda criar sua base e compartilhá-la.
Desvantagens¶
- Pelo fato de compartilhar o kernel, seus containers não terão completo isolamento.
- Não tem garantia de recursos a nível de hardware.
- Enquanto a instalação é fácil no Linux, outros sistemas precisam de Máquina Virtual.
Principais diferenças de Vagrant e Docker¶
Recurso | Docker | Vagrant |
---|---|---|
Tipo de virtualização | VE | VM |
Garantia de recursos a nível de hardware | Não | Sim |
Tempo de inicialização | Segundos | Alguns minutos |
Nível de isolamento | Parcial | Total |
Tamanho dos sitemas virtuais | Muito Leve | Pesado |
Referências¶
Aprendendo Docker. Disponível em https://s3.novatec.com.br/capitulos/capitulo-9788575224861.pdf
Docker. Disponível em https://www.docker.com/