|
|
|
# Docker
|
|
|
|
|
|
|
|
Docker é uma solução para utilização de containers. Através do uso de containers é possível executar aplicações de forma controlada, isoladas da infraestrutura e demais aplicações no mesmo host.
|
|
|
|
|
|
|
|
Diferente de máquinas virtuais, um container não carrega consigo toda instrumentalização necessária para um Sistema Operacional, podendo compartilhar o Kernel do Sistema Operacional do Host.
|
|
|
|
|
|
|
|
<img src="https://www.docker.com/sites/default/files/d8/2018-11/docker-containerized-appliction-blue-border_2.png">
|
|
|
|
|
|
|
|
Mais informações podem sem encontradas em:
|
|
|
|
* [Landing Page Docker](https://www.docker.com/resources/what-container)
|
|
|
|
* [Documentação Técnica do Docker](https://docs.docker.com/)
|
|
|
|
|
|
|
|
# Docker Swarm
|
|
|
|
Docker Swarm é o orquestrador do containers e máquinas, para execução distribuída e coordenada de containers docker. Através do Swarm é possível definir serviços, que terão capacidades avançadas para utilização de réplicas, alta disponibilidade, atualização progressiva, entre outras.
|
|
|
|
|
|
|
|
O Docker Swarm é essencial, pois ao utilizarmos um *[service](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/)* conseguimos facilmente definir o número de réplicas (containers) que devem estar ativos e realizar atualização da imagem docker presente em todos eles.
|
|
|
|
|
|
|
|
## Iniciando o Swarm
|
|
|
|
Para iniciar um swarm, você precisa executar
|
|
|
|
```
|
|
|
|
docker swarm init
|
|
|
|
```
|
|
|
|
|
|
|
|
desta maneira já poderemos adicionar mais máquinas a este cluster e utilizar os recursos de stack.
|
|
|
|
|
|
|
|
## Criando uma Stack
|
|
|
|
Uma stack descreve um conjunto de recursos necessários para a execução de serviços, como volumes, redes, serviços.
|
|
|
|
|
|
|
|
Uma stack pode ser escrita utilizando a especificação do tipo Compose. [Documentação](https://docs.docker.com/engine/swarm/stack-deploy/)
|
|
|
|
|
|
|
|
Para criar uma stack você precisa executar
|
|
|
|
|
|
|
|
```
|
|
|
|
docker stack deploy --compose-file docker-compose.yml <nome-da-stack>
|
|
|
|
```
|
|
|
|
|
|
|
|
Veja a [documentação](https://docs.docker.com/engine/swarm/stack-deploy/#deploy-the-stack-to-the-swarm) para informações detalhadas.
|
|
|
|
|
|
|
|
## Atualizando um Serviço
|
|
|
|
Com a stack criada e os serviços em execução, é possível alterar a configuração destes serviços via linha de comando.
|
|
|
|
|
|
|
|
Para um cenário de atualização via Continuous Delivery, o comando de atualização da imagem de um serviço via linha de comando é um dos mais necessários.
|
|
|
|
|
|
|
|
```
|
|
|
|
docker service update --image <imagem> <nome-do-serviço>
|
|
|
|
```
|
|
|
|
Veja a [documentação](https://docs.docker.com/engine/reference/commandline/service_update/) para informações detalhadas.
|
|
|
|
|
|
|
|
|