Olá pessoal, tudo bem?
Conforme falamos em um post anterior o Docker lançou uma nova versão a 1.13 e nessa nova versão tivemos diversas melhorias e com a entrada dessa nossa versão também tivemos a criação de uma nova versão no Docker Compose que é a v3. Essa nova versão é totalmente compatível com o Docker Swarm que hoje é nativo na mesma engine no Docker, então agora com Docker Compose podemos gerenciar nossos serviços através do Docker Swarm.
Agora com a V3 existe opção chamada deploy que é responsável por realizar as implantações e execução de serviços. Dentro dessa opção temos as seguintes funções:
- Mode
- Onde é possível escolher a opção “Global” (Um container por nó de swarm) ou “Replicated” (Onde posso escolher a quantidade de réplicas que estarão distribuídas entre os nós). O padrão é replicated.
- Replicas
- replicas: x
- Global
- Placement
- Especifica restrições de posicionamento são elas:
- node.id = idworker
- node.hostname = nomeworker
- node.role = manager ou worker
- node.lables = nome
- engine.labels = Sistema Operacional ou Driver
- Especifica restrições de posicionamento são elas:
- Update_config
- Configura como devem ser as opções de atualizações dos serviços.
- Parallelism: 5 #O Numero de containers que vão ser atualizados em paralelo.
- delay: 10s #O tempo entre cada grupo de containers será atualizado
- failure_action: pause ou continue #O que irá acontecer se a atualização falhar. O padrão é pause.
- monitor: 0s # Duração após cada atualização para monitorar a falha. O padrão é 0s.
- max_failure_ratio: #Taxa de falha para atualizar.
- resources
- Configura a restrição de recursos
- limits:
- cpus: ‘0.5’ # 0.5 representa 50% de um núcleo, porem pode ser 1 ou 1.5 ou 2….
- memory: ‘512M’ #apenas especificar o prefixo M, G, K….
- limits:
- Configura a restrição de recursos
- Restart_policy
- Configura como reiniciar os containers quando eles derem exit.
- condity: none on-failure any #Por padrão é any
- delay: 0s #Tempo entre as tentativas de reiniciar o containers #Por padrão é 0s
- max_attempts: 0 #Quantas vezes irá tentar subir o container antes de desistir #Por padrão é nunca desistir.
- window: 0s #Quanto tempo demora para decidir se um reinicio foi bem sucedido #Por padrão é imediatamente,
- Configura como reiniciar os containers quando eles derem exit.
Alem dessas opções, com a entrada da V3 foram descontinuadas as seguintes opções do Docker Compose: volume_driver
, volumes_from
, cpu_shares
, cpu_quota
, cpuset
, mem_limit
, memswap_limit
Agora vamos demonstrar um exemplo de como ficaria o docker-compose.yml
com essas opções que mostramos acima.
version: "3"
services:
redis:
image: redis
ports:
- "6379"
deploy:
placement:
constraints: [node.role == manager]
nginx:
image: nginx
ports:
- 80:80
depends_on:
- redis
deploy:
mode: replicated
replicas: 2
placement:
constraints: [node.role == manager]
resources:
limits:
memory: 512M
restart_policy:
condition: on-failure
delay: 10s
Executando o comando docker deploy --compose-file docker-compose.yml nomedastack
criamos a stack mencionada acima em nossa estrutura. Após executar esse comando é possível dar um docker stack ls
e você poderá ver que a sua stack foi criada, com o nome da sua stack você pode executar o docker stack services nomedastack
e poderá ver os serviços criados e qual o seu status.
Então ta pessoal, por hoje era isso, espero que tenham gostado e qualquer dúvida é só deixar um comentário que estaremos felizes em lhe ajudar, nos ajude divulgando o blog obrigado!