Docker
  • Introdução a Containeres e Docker
    • Introdução
    • O que é um container e suas vantanges
    • VM versus Container
    • Como funcionam os containers
    • Linux
    • Container sem Docker
      • cgroup
      • cpu.max
    • LxC
    • LxD
    • Containers versus Imagens
    • Arquitetura do Docker
    • Arquitetura do Docker mais a fundo
    • Projetos Open Source
  • Instalação do Docker
    • Linux
    • Windows
      • Docker Desktop
      • Rancher Desktop
      • WSL
    • Mac
    • Visual Studio Code
  • Primeiros Passos com Docker
    • Criação e listagem básica de um container
    • Interagindo com o container
    • Executando containers continuamente
      • nginx
      • docker container run
      • docker container run nginx
      • docker container run -d nginx
      • docker container exec
    • Como usar publish de porta
      • docker container stop
      • docker container start
      • docker container rm
      • docker container rm -f $(docker container ls -qa)
    • Containers e variáveis de ambiente
      • docker container run -e
  • Desafio
    • Desafio 01 - Banco de Dados Postgresql
    • Desafio 02 - Banco de Dados MySQL
    • Desafio 03 - Banco de Dados MongoDB
  • Executando a sua primeira aplicação em containers
    • Introdução
    • Preparando o container para a aplicação
    • Executando a aplicação
      • docker container cp
  • Primeiros Passos com Docker Images
    • Introdução
    • OverlayFS na Prática
    • Copy-on-Write
    • Formas de criar uma imagem Docker
    • Como funciona o Docker Commit
    • Docker Commit na Prática
      • docker commit
    • Entendendo melhor a sua imagem
      • docker image history
      • docker image inspect
    • Entrando mais a fundo na imagem
    • Como usar a imagem Docker no modo raiz
  • Avançando em imagens Docker com Dockerfile
    • O que é Dockerfile
    • Primeira Imagem com Dockerfile
      • docker image build
    • Como funciona a construção com Dockerfile
    • Possibilidades com Dockerfile
    • FROM
    • RUN
    • WORKDIR
    • COPY
    • ADD
    • LABEL
    • ENV
    • VOLUME
    • ARG
    • EXPOSE
    • USER
    • ENTRYPOINT
    • CMD
    • ENTRYPOINT versus CMD
    • Principais comandos com imagem
    • Imagem da aplicação com Dockerfile
    • Comparando Docker Commit com Dockerfile
  • Docker Registry
    • Introdução
    • Docker Hub
    • Sua imagem com o nome certo
    • Renomear imagens com Docker Tag
      • docker image tag
    • Enviando a sua primeira imagem para o Docker Hub
      • docker image push
      • docker image pull
  • Algumas boas práticas para construção de imagem
    • Um processo por container
    • Usar imagens confiáveis
    • Otimizar sempre a sua imagem
    • Uso inteligente das camadas
    • Dockerignore
  • Multistage Build
    • Introdução
    • Multistage build na prática
    • Target para fazer o build
      • docker image build --target
    • Imagem externa no Multistage build
    • Usar um estágio de build como base
  • Docker Volume
    • Introdução
      • docker volume
    • Bind Mount
    • Particularidades do Bind Mount
    • Bind Mount no Windows
    • Exemplo com Bind Mount
    • Docker Volume
      • docker volume create
      • docker volume inspect
      • docker volume ls
      • docker volume prune
      • docker volume rm
    • Onde ficam os arquivos do Docker volume?
    • Usando o volume no Dockerfile
    • Como fazer backup de um Docker Volume
    • Exemplo com Docker Volume
    • Storage tmpfs
    • Como criar algo funcional com o que aprendemos
  • Network
    • Introdução
    • Componentes do Docker Network
    • Rede Bridge na prática
      • docker network
      • docker network create
      • docker network inspect
      • docker network ls
      • docker network prune
      • docker network rm
    • Criando a sua rede bridge
      • docker network connect
      • docker network disconnect
    • Como funciona a rede bridge por dentro
    • Rede Host na prática
    • Rede none da prática
    • Como adicionar domínios no seu container
  • Aplicação 100% no Docker
    • Introdução
    • Criação da Imagem e Envio para o Docker Hub
    • Criação do Docker Network
    • Container do PostgreSQL
    • Container da Aplicação Web
    • Atualização da aplicação
  • Docker Compose
    • Introdução
      • docker compose
    • A evolução do docker compose
    • Criação básica de um Docker Compose
      • docker compose attach
      • docker compose build
      • docker compose config
      • docker compose cp
      • docker compose create
      • docker compose down
      • docker compose events
      • docker compose exec
      • docker compose images
      • docker compose kill
      • docker compose logs
      • docker compose ls
      • docker compose pause
      • docker compose port
      • docker compose ps
      • docker compose pull
      • docker compose push
      • docker compose restart
      • docker compose rm
      • docker compose run
      • docker compose scale
      • docker compose start
      • docker compose stats
      • docker compose stop
      • docker compose top
      • docker compose unpause
      • docker compose up
      • docker compose version
      • docker compose wait
      • docker compose watch
    • Variáveis de Ambiente
    • Volume Bind Mount
    • Docker Volume
    • Docker Network - Bridge
    • Docker Network - Host Driver e Add Host
    • Ordenando a execução dos containers
    • Compose com build de imagem
    • Como Parametrizar o Compose com Variáveis de Ambiente
    • Múltiplos Composes
    • Extends
    • Merge
    • Include
    • Profiles
    • Comandos importantes do Docker Compose
  • Troubleshooting
    • Introdução
    • Docker Info
    • Docker Events
    • Docker Logs
    • Docker Inspect
    • Docker Top
    • Docker Stats
    • Docker Exec
  • Resiliência e Gerenciamento de Recursos
    • Introdução
    • Docker Restart
      • Introdução
      • on-failure
      • unless-stopped
      • always
      • Docker Compose
    • Healthcheck
      • Introdução
      • Linha de Comando
      • Docker Compose
      • Direto na Imagem
    • Gerenciamento de Recurso
      • CPU
        • Como Gerenciar CPU
        • Prática
      • Memória
        • Como Gerenciar Memória
        • Prática
      • Docker Compose
  • Fazendo um ambiente mais seguro
    • Introdução
    • Docker Scout
      • Introdução
      • Verificação Simples de Imagem
      • Como adicionar um repositório
      • Primeira melhoria na imagem
  • BUSCA RÁPIDA
    • Referências
    • Comandos
      • docker commit
      • docker compose
      • docker container
      • docker image
      • docker network
      • docker volume
    • Dockerfile
Powered by GitBook
On this page
  • Visão Geral da Política on-failure
  • Estrutura do Comando
  • 1. Sem especificação de limite de tentativas:
  • 2. Com um limite de tentativas:
  • Comportamento da Política
  • 1. Falha do container (Exit Status != 0):
  • 2. Encerramento normal (Exit Status = 0):
  • 3. Limite de tentativas:
  • 4. Comportamento após o reinício do daemon:
  • Exemplo Prático
  • Verificação do Status do Container
  • Logs e Depuração
  • Considerações
  • Conclusão
  • Laboratório
  • Número de Tentativas
  • Docker Daemon
  1. Resiliência e Gerenciamento de Recursos
  2. Docker Restart

on-failure

A opção restart no Docker define como o Docker deve lidar com a reinicialização automática de containers quando eles falham ou quando o daemon é reiniciado. Uma das políticas mais utilizadas é on-failure. Nesta documentação, vamos explorar em profundidade o comportamento dessa política, suas características, e exemplos práticos de uso.

Visão Geral da Política on-failure

A política de reinicialização on-failure instrui o Docker a reiniciar o container automaticamente apenas quando ele falha, ou seja, retorna um código de saída diferente de zero (indicando erro). Isso permite que o serviço se mantenha resiliente a falhas ocasionais, como erros de execução. Se o container parar voluntariamente ou for encerrado por um comando normal, como docker stop, ele não será reiniciado.

Estrutura do Comando

A política on-failure pode ser configurada de duas formas:

1. Sem especificação de limite de tentativas:

O Docker tentará reiniciar o container indefinidamente sempre que ele falhar.

docker run --restart on-failure <container_name_or_image>

2. Com um limite de tentativas:

O Docker pode ser configurado para tentar reiniciar o container um número máximo de vezes. Se o container continuar falhando além desse limite, ele permanecerá em estado de falha.

docker run --restart on-failure:5 <container_name_or_image>

Nesse exemplo, o Docker tentará reiniciar o container até cinco vezes antes de desistir.

Comportamento da Política

1. Falha do container (Exit Status != 0):

Quando o container sai com um código de erro (diferente de zero), o Docker reinicia automaticamente o container.

2. Encerramento normal (Exit Status = 0):

Quando o container é encerrado normalmente, seja por término natural do processo principal ou por comando de parada do Docker, ele não será reiniciado. Neste caso, o código de saída será zero.

3. Limite de tentativas:

Se um limite de tentativas for definido e o container falhar continuamente, ele será reiniciado até atingir o número máximo especificado. Após o limite ser alcançado, o Docker não tentará mais reiniciar o container.

4. Comportamento após o reinício do daemon:

Ao reiniciar o daemon do Docker (ou o host onde ele está rodando), containers com a política on-failure não serão reiniciados, a menos que tenham sido finalizados anteriormente por falhas.

Exemplo Prático

Imagine um container que executa um script Python responsável por monitorar um serviço de rede. Caso haja falha na execução do script, como um erro de conexão ou uma exceção não tratada, o container falhará com um código de saída diferente de zero, acionando a política de reinicialização.

docker run --name monitor-script --restart on-failure:3 my-python-monitor

Neste caso:

  • O Docker tentará reiniciar o container até três vezes caso ele continue falhando.

  • Se o container parar normalmente (código de saída 0), o Docker não irá reiniciá-lo.

  • Se as três tentativas de reinicialização falharem, o container não será mais reiniciado automaticamente.

Verificação do Status do Container

Você pode verificar o status do container para entender se ele está em um ciclo de reinicialização por falha. O comando docker ps -a exibirá o histórico de reinicializações e falhas.

docker ps -a

Isso mostrará algo como:

CONTAINER ID   IMAGE              STATUS                       RESTARTS   NAME
a1b2c3d4e5f6   my-python-monitor  Exited (1) 1 minute ago       3          monitor-script

Aqui podemos ver que o container monitor-script falhou e foi reiniciado três vezes antes de parar definitivamente.

Logs e Depuração

Para depurar o que causou a falha no container, os logs são uma ferramenta essencial. O comando docker logs pode ser usado para visualizar o que ocorreu durante as tentativas de execução.

docker logs <container_name_or_id>

Esse comando ajuda a identificar o ponto de falha no processo e corrigir o comportamento indesejado.

Considerações

  1. Uso com containers críticos: O on-failure é uma política apropriada para containers críticos onde falhas são possíveis, mas o reinício pode permitir uma recuperação automática sem intervenção manual. Exemplo típico: serviços web ou de banco de dados que podem falhar devido a sobrecarga ou problemas de rede.

  2. Limite de tentativas: Definir um número de tentativas adequado evita loops infinitos de reinicialização quando há falhas persistentes no container.

  3. Falhas de rede temporárias: É comum configurar essa política para containers que dependem de serviços externos ou de rede. Problemas temporários, como quedas de rede, podem ser resolvidos automaticamente com a reinicialização.

Conclusão

A política restart on-failure do Docker é uma ferramenta poderosa para garantir a resiliência de containers que possam falhar ocasionalmente. Ao configurá-la adequadamente, você pode garantir que seus serviços continuem operando mesmo em caso de falhas transitórias. Por outro lado, o controle sobre o número de reinicializações evita loops intermináveis quando há falhas persistentes. É uma opção recomendada para cenários onde a alta disponibilidade é crucial.

Laboratório

Ambiente limpo:

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
$ docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
$ docker volume ls
DRIVER    VOLUME NAME
$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
9d2935162cab   bridge    bridge    local
73f2d51a39de   host      host      local
9198ba9fc6fd   none      null      local

Execução do container:

$ docker container run -d -p 8080:3000 --restart=on-failure marcelodpbarbieri/simulador-caos:v1
Unable to find image 'marcelodpbarbieri/simulador-caos:v1' locally
v1: Pulling from marcelodpbarbieri/simulador-caos
90e5e7d8b87a: Pull complete
27e1a8ca91d3: Pull complete
d3a767d1d12e: Pull complete
711be5dc5044: Pull complete
22956530cc64: Pull complete
8120d733fe37: Pull complete
29e2cea0cf4c: Pull complete
2e099399c08b: Pull complete
2a3b119fb1d1: Pull complete
87281006e4d9: Pull complete
fb868c385262: Pull complete
640567afc0c7: Pull complete
e8e7f6f9021c: Pull complete
4d540d5fa2f7: Pull complete
Digest: sha256:73e8a6febd3574201eda3ff3b915222e3b1f9ab6d18ed3634d52d55e75135964
Status: Downloaded newer image for marcelodpbarbieri/simulador-caos:v1
a1748efe417e797496cf5b92f7689f515c921a82460ab49818e44879d36877de

Container em execução:

$ docker container ls
CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                       NAMES
a1748efe417e   marcelodpbarbieri/simulador-caos:v1   "docker-entrypoint.s…"   12 seconds ago   Up 11 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp   sad_villani

Se a aplicação for encerrada com erro, o container deve ser executado novamente de forma automática.

O teste poderá ser acompanhado a partir de outros terminais com os comandos "watch 'docker container ls -a'" e/ou "docker events".

Teste de encerramento da aplicação com erro:

$ docker events
2024-09-08T08:32:19.982058111-03:00 container create 2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e (image=marcelodpbarbieri/simulador-caos:v1, name=elegant_sanderson)
2024-09-08T08:32:20.033240616-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e, name=bridge, type=bridge)
2024-09-08T08:32:20.326322211-03:00 container start 2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e (image=marcelodpbarbieri/simulador-caos:v1, name=elegant_sanderson)
2024-09-08T08:32:46.288456950-03:00 network disconnect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e, name=bridge, type=bridge)
2024-09-08T08:32:46.300262696-03:00 container die 2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e (execDuration=25, exitCode=1, image=marcelodpbarbieri/simulador-caos:v1, name=elegant_sanderson)
2024-09-08T08:32:46.351413424-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e, name=bridge, type=bridge)
2024-09-08T08:32:46.768007452-03:00 container start 2845e3c6f2f16748deb16dc929229eb23cdf0b3d93717374f4bd195bd70c504e (image=marcelodpbarbieri/simulador-caos:v1, name=elegant_sanderson)
$ watch 'docker container ls -a'

Se o container for encerrado com sucesso, o container não será reiniciado:

$ docker container run -d -p 8080:3000 --restart=on-failure marcelodpbarbieri/simulador-caos:v1
d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8
$ docker events
2024-09-08T08:37:57.929708960-03:00 container create d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8 (image=marcelodpbarbieri/simulador-caos:v1, name=amazing_buck)
2024-09-08T08:37:57.984694793-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8, name=bridge, type=bridge)
2024-09-08T08:37:58.245514521-03:00 container start d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8 (image=marcelodpbarbieri/simulador-caos:v1, name=amazing_buck)
2024-09-08T08:38:41.750729841-03:00 network disconnect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8, name=bridge, type=bridge)
2024-09-08T08:38:41.765653350-03:00 container die d510536be5cc83ac2c7513517ca0b80ad7d96948761a74800f8a7d43e3e0fdd8 (execDuration=43, exitCode=0, image=marcelodpbarbieri/simulador-caos:v1, name=amazing_buck)

Número de Tentativas

O on-failure pode ser parametrizado com o número de tentativas.

Exemplo com número de tentativas igual a 2:

$ docker container run -d -p 8080:3000 \
          --restart=on-failure:2 \
          marcelodpbarbieri/simulador-caos:v1

Encerramento da aplicação com erro 3 vezes com restart automático:

Após isso o container não foi mais executado com situação igual a Exited(1):

$ docker events
# primeira execução com instrução on-failure:2
2024-09-08T08:42:39.584639324-03:00 container create e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
2024-09-08T08:42:39.642721259-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:42:39.881581545-03:00 container start e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# aplicação encerrada com erro
2024-09-08T08:42:46.500689767-03:00 network disconnect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:42:46.518059736-03:00 container die e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (execDuration=6, exitCode=1, image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# primeita tentativa de reiniciar a aplicação
2024-09-08T08:42:46.570786711-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:42:46.863308966-03:00 container start e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# aplicação encerrada com erro
2024-09-08T08:42:53.548293233-03:00 network disconnect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:42:53.566151079-03:00 container die e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (execDuration=6, exitCode=1, image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# segunda tentativa de reiniciar a aplicação
2024-09-08T08:42:53.631329565-03:00 network connect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:42:53.968778409-03:00 container start e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# aplicação encerrada com erro
2024-09-08T08:43:00.569368529-03:00 network disconnect 9d2935162cabc0fa7aa0014f9df06a330609f090df2807a8ffe35658086f30a2 (container=e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa, name=bridge, type=bridge)
2024-09-08T08:43:00.587709404-03:00 container die e42e7d5148ae65f900515c67cb51f492b2326a62ebb4f5aaf3c881d99d4c48aa (execDuration=6, exitCode=1, image=marcelodpbarbieri/simulador-caos:v1, name=intelligent_mclean)
# não será realizada nova tentativa
# pois foi esgotado o limite de tentativas parametrizado

Docker Daemon

Testes com o encerramento do Docker Daemon.

$ docker container run -d -p 8080:3000 --restart=on-failure:2 marcelodpbarbieri/simulador-caos:v1
30ebc81047c5d47a06912f637cda3b2dc03afaef6526164e9f29fac173cdc817

O comando watch deve ser encerrado para não permitir que o Docker serja reiniciado

$ sudo systemctl stop docker
[sudo] password for marcelo:
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
$ docker events
2024-09-08T08:56:13.009844378-03:00 container create 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak)
2024-09-08T08:56:13.063865342-03:00 network connect fcf28dcd0346ab83eba28a246fbaf2eb62750415bda22b737a3ab24772228fc9 (container=3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390, name=bridge, type=bridge)
2024-09-08T08:56:13.334557699-03:00 container start 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak)
2024-09-08T08:56:18.592381152-03:00 container kill 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak, signal=15)
2024-09-08T08:56:28.603415216-03:00 container kill 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak, signal=9)
2024-09-08T08:56:29.050852982-03:00 network disconnect fcf28dcd0346ab83eba28a246fbaf2eb62750415bda22b737a3ab24772228fc9 (container=3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390, name=bridge, type=bridge)
2024-09-08T08:56:29.062754388-03:00 container stop 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak)
2024-09-08T08:56:29.069812781-03:00 container die 3eedf113de8d7ae9d26fe09b1dd7bf7f4437791bec55b4c02789855e0ac16390 (execDuration=15, exitCode=137, image=marcelodpbarbieri/simulador-caos:v1, name=hopeful_wozniak)
unexpected EOF
$ sudo systemctl start docker
$ docker container logs --since 2024-09-08T08:56:00Z 3eedf113de8d

> resiliencia-consumo@1.0.0 start
> node ./dist/server.js

Servidor rodando na porta 3000

> resiliencia-consumo@1.0.0 start
> node ./dist/server.js
$ systemctl status docker
TZ=America/Sao_Paulo journalctl -u docker --since "2024-09-07 12:00:00" -n 50

Sep 07 22:10:06 Latitude5440 systemd[1]: Starting Docker Application Container Engine...
Sep 07 22:10:06 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:06.199989440-03:00" level=info msg="Starting up"
Sep 07 22:10:06 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:06.235036359-03:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
Sep 07 22:10:06 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:06.238538406-03:00" level=info msg="Loading containers: start."
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.567612887-03:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to >
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.740752702-03:00" level=info msg="Loading containers: done."
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757521667-03:00" level=warning msg="WARNING: No blkio throttle.read_bps_device support"
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757547917-03:00" level=warning msg="WARNING: No blkio throttle.write_bps_device support"
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757551484-03:00" level=warning msg="WARNING: No blkio throttle.read_iops_device support"
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757553674-03:00" level=warning msg="WARNING: No blkio throttle.write_iops_device support"
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757567241-03:00" level=info msg="Docker daemon" commit=cc13f95 containerd-snapshotter=false storage-driver=overlay2 version=27.1.1
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.757659851-03:00" level=info msg="Daemon has completed initialization"
Sep 07 22:10:07 Latitude5440 dockerd[187706]: time="2024-09-07T22:10:07.916874704-03:00" level=info msg="API listen on /run/docker.sock"
Sep 07 22:10:07 Latitude5440 systemd[1]: Started Docker Application Container Engine.
-- Boot 8660c6d1d2cd46cebf5d6d39d3186438 --
Sep 08 08:18:17 Latitude5440 systemd[1]: Starting Docker Application Container Engine...
Sep 08 08:18:17 Latitude5440 dockerd[345]: time="2024-09-08T08:18:17.266818081-03:00" level=info msg="Starting up"

A aplicação não será reiniciada somente se for encerrada com sucesso ou quando o limite de tentativas for esgotado!

Se a aplicação for encerrada com erro ou se houver algum problema no Docker Daemon a aplicação poderá ser reiniciada.

PreviousIntroduçãoNextunless-stopped

Last updated 8 months ago