Pular para o conteúdo
SDETRole
SDETRole

Glossário · CI/CD e DevOps

Container Docker

Em inglês: Docker container

Também chamado de: contêiner Docker, containers Docker, imagem Docker, Docker image

Definição

Uma instância isolada e em execução de uma imagem Docker, que empacota uma aplicação ou serviço com suas dependências para se comportar igual no notebook e na CI.

Um container Docker é um processo iniciado a partir de uma imagem Docker e isolado do resto da máquina: ele tem seu próprio sistema de arquivos, interface de rede e lista de processos, mas compartilha o kernel do host. A imagem é o template somente leitura (uma camada base de sistema operacional, runtimes, sua aplicação); o container é uma instância dela em execução. Você pode iniciar vários containers a partir de uma imagem e descartá-los quando terminar.

Exemplo

Subir um nó descartável do Selenium com Chrome e um banco Postgres para execuções locais de testes:

docker run --rm -d --name chrome -p 4444:4444 --shm-size=2g selenium/standalone-chrome:latest
docker run --rm -d --name db -p 5432:5432 -e POSTGRES_PASSWORD=test postgres:16-alpine

docker ps          # list running containers
docker logs db     # read a container's output
docker stop chrome db

--rm apaga o container quando ele para, -d o executa em segundo plano e -p host:container publica uma porta. Em projetos reais você fixa as tags das imagens (por exemplo postgres:16.4-alpine) em vez de latest, para que uma nova versão upstream não mude seu ambiente de testes da noite para o dia.

Por que testers usam containers

  • Ambientes reproduzíveis. A mesma imagem roda em todo notebook e em todo runner de CI, o que elimina toda uma classe de falhas do tipo “na minha máquina funciona”.
  • Dependências descartáveis. Um banco de dados novo a cada execução de testes significa nenhum dado sobrando da execução de ontem.
  • Navegadores em paralelo. O Selenium Grid e as imagens de navegadores permitem aumentar e diminuir a quantidade de nós com um comando.
  • Rodar a própria suíte de testes. O Playwright publica imagens oficiais com navegadores e bibliotecas de sistema pré-instalados, o que evita erros de dependência ausente nos agentes de CI.

Diferença em relação a uma máquina virtual

Uma VM emula uma máquina completa com seu próprio kernel, então é mais pesada e mais lenta para iniciar. Um container compartilha o kernel do host, inicia em segundos e usa muito menos memória. A contrapartida é um isolamento mais fraco, o que importa para fronteiras de segurança, mas raramente para ambientes de teste.

Erros comuns

Guardar dados de teste dentro de um container e esperar que eles sobrevivam a um restart (use volumes), usar tags latest e esquecer o --shm-size em containers de navegador, o que faz o Chrome travar sob carga.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →