Formação AWS

← Todos os artigos

Finch da AWS: alternativa ao Docker Desktop, testada num projeto

ContainersPor Henrylle Maia · 15 out 2026 · 7 min de leitura

Parei o Docker da minha máquina e rodei um projeto real (Node, React e Postgres) só com o Finch, o cliente de containers de código aberto mantido pela AWS. O Dockerfile e o compose.yml ficaram como estavam; só a primeira palavra do comando mudou. Abaixo estão os comandos, os erros que cometi e o que o teste não cobre.

Por que olhar para uma alternativa ao Docker

O Docker deixou de ser gratuito para empresas grandes. Pelo que citei, desde 2021, com avaliação a partir de janeiro de 2022: a cobrança vale para empresas a partir de 250 usuários (ou 10 milhões de dólares de faturamento). Confira os números atuais na página oficial do Docker, porque eles podem mudar.

Eu não estou dizendo que o Docker vai morrer. Pode ser que ele continue sendo o padrão do mercado. Mas se o critério de licenciamento mudar, por exemplo para empresas a partir de 50 usuários, uma fatia bem maior de empresas passa a ser afetada. Por isso, no seu lugar, eu também começaria a fazer testes.

O que é o Finch

O Finch é código aberto, funciona só por linha de comando e foi criado e é mantido pela AWS. Ele foi lançado em 2022. O repositório oficial está em github.com/runfinch/finch, a documentação em runfinch.com/docs e o anúncio de lançamento no blog de código aberto da AWS.

O Docker, para você operar, pede o Docker Desktop, que é mais pesado. O Finch dispensa esse programa. Os dois usam por baixo o containerd, o ambiente de execução de containers padrão do setor, focado em simplicidade e robustez. Por isso a sua aplicação, muito provavelmente, não precisa do Docker: precisa de um runtime de containers.

Docker e Finch lado a lado: Docker é pago para grandes empresas e pede o Docker Desktop; o Finch é open source, de linha de comando e criado e mantido pela AWS; os dois usam containerdDOCKERpago paragrandes empresasDocker DesktopcontainerdFINCHopen sourceCLIcontainerdcriado e mantidopela AWS
Docker e Finch lado a lado: o Docker é pago para grandes empresas e pede o Docker Desktop; o Finch é open source, de linha de comando e criado e mantido pela AWS; os dois usam containerd

Ele é compatível com Mac, Windows e Linux, incluindo Ubuntu e instâncias Amazon Linux. A documentação oficial traz a instalação para cada um dos três sistemas.

1Conferir que o Finch está rodando

Eu não cobri a instalação. O post de lançamento da AWS que mostrei traz o passo a passo: depois de instalar, a máquina virtual do Finch é inicializada com finch vm init e, depois de um reinício, sobe de novo com finch vm start. Eu só rodei o teste.

Primeiro parei o Docker e rodei docker run hello-world: parou de responder. Depois, a imagem de teste do Finch:

bash
finch run --rm public.ecr.aws/finch/hello-finch

Ela imprime "Hello from Finch!": o Finch funciona e o Docker está parado.

2Build e run, trocando só a primeira palavra

O projeto de teste é o BIA, aplicação em Node com React que uso com os alunos da Formação AWS. Ele já tem Dockerfile e compose.yml, e eu não mexi em nenhum dos dois. Com o Docker seria docker build -t bia-finch .. Com o Finch:

bash
finch build -t bia-finch .

O comando procura o Dockerfile no diretório atual. Na primeira tentativa errei o diretório e veio "no such file or directory"; entrei na pasta do projeto e rodou. O build correu como no Docker, com o Docker parado.

Para subir o container, as opções vêm antes do nome da imagem:

bash
finch run -p 3001:8080 --rm bia-finch

O -p 3001:8080 mapeia a porta 3001 da máquina para a 8080 do container, e o --rm remove o container quando ele parar. Na primeira vez escrevi o nome da imagem antes da porta e deu erro: a imagem vai por último. Abri localhost:3001 e a aplicação estava de pé. Com Ctrl+C o container para.

3Subir com compose, banco incluso

A aplicação precisa do banco, então uso compose. O compose.yml do projeto faz o build do servidor, publica a porta e depende do serviço do banco (Postgres 17.1).

O compose.yml do projeto, sem alteração: build do servidor, container bia, porta 3001:8080 e depends_on do serviço database
O compose.yml do projeto, sem alteração: build do servidor, container bia, porta 3001:8080 e depends_on do serviço database

Com o Docker eu rodaria docker compose up -d. Com o Finch:

bash
finch compose up -d

Saíram alguns avisos e informações do próprio Finch, mas o projeto subiu. Conferi com finch ps: os dois containers estavam de pé, criados com 8 e 7 segundos de diferença, primeiro o banco e depois o servidor. [[diagrama]]

4Rodar a migration e testar a persistência

Na primeira tentativa, a tarefa não foi salva. O motivo não é o Finch: o projeto tem migrations, e a tabela de tarefas ainda não existia. O README do projeto traz o comando para o Docker; basta trocar a primeira palavra:

bash
finch compose exec server bash -c 'npx sequelize db:migrate'

Ele entra no serviço server e roda o Sequelize para criar a estrutura relacional. A saída mostrou as migrations rodando.

Depois disso, cadastrei a tarefa "tirando docker e colocando o finch" e ela foi salva.

A aplicação BIA em localhost:3001, rodando no Finch, com a tarefa "tirando docker e colocando o finch" cadastrada para HOJE
A aplicação BIA em localhost:3001, rodando no Finch, com a tarefa "tirando docker e colocando o finch" cadastrada para HOJE

Para ver o banco trabalhando, abri os logs:

bash
finch logs -f

Dá para ver os INSERT, SELECT e UPDATE a cada tarefa. Tudo se comportou como se eu estivesse com o Docker.

O que eu concluo (e o que não)

Eu não concluí que o Docker acabou. Concluí que existem alternativas e que vale começar a testar antes de precisar. O Finch rodou o meu projeto com build, run, compose e migrate sem eu mexer no Dockerfile nem no compose.yml. Citei também o Podman e outras opções do mercado.

Se a sua empresa é pequena, talvez você não precise fazer nada. Se ela está em uma situação que pode ficar em risco pela quantidade de funcionários, por que não mudar? Ainda tem o ganho de não depender do Docker Desktop: o Finch se instala por linha de comando e a máquina virtual é bem leve.

O que o teste não cobre: foi um projeto só, na minha máquina. Estou testando o Finch de forma exaustiva e confio nele por ser mantido pela AWS, mas faça os seus testes no seu projeto antes de trocar qualquer coisa.

Checklist

  • [ ] Finch instalado e a máquina virtual iniciada (finch vm init, finch vm start)
  • [ ] finch run --rm public.ecr.aws/finch/hello-finch imprime "Hello from Finch!"
  • [ ] finch build -t <nome> . roda no diretório do Dockerfile
  • [ ] finch run -p 3001:8080 --rm <nome> abre a aplicação em localhost:3001, com as opções antes da imagem
  • [ ] finch compose up -d sobe o servidor e o banco, e finch ps lista os dois containers
  • [ ] A migration rodou com finch compose exec e a aplicação salva dados
  • [ ] Você conferiu a licença atual do Docker na página oficial

Se você quer aprender containers e AWS fazendo projeto de verdade, como este, é esse o trabalho da Formação AWS.

O que os alunos dizem

  • “A prática e a clareza da metodologia me deram direção para entender a AWS de verdade e agir com segurança no dia a dia.”

    Luiz Campedelli, Estagiário em Cloud

    Ver depoimento
  • “Comecei a estudar Cloud em 2023 e entrei na Imersão AWS para aprofundar minha prática.”

    Luiz Claudio, Arquiteto de Soluções

    Ver depoimento
  • “Hoje recebo oportunidades 100% remoto e finalmente me sinto recolocada no mercado.”

    Patrícia Prado, Desenvolvedora Back-end

    Ver depoimento

Formação AWS

Aprenda AWS e IA na prática, com projeto real e acompanhamento. Converse com o time sobre a Formação AWS.

Agende uma conversa

Prefere assistir?

A aula completa (15 min) está no canal Domine AWS. O vídeo toca aqui mesmo.

Leia também

Compartilhe este post