O que é um container
Container é um ambiente isolado para executar um processo ou um conjunto de processos. No modelo Linux usual, ele usa o kernel do sistema que o hospeda e recebe uma visão própria de recursos como arquivos, processos e rede, conforme a configuração.
Uma aplicação web pode executar dentro de um container enquanto seu banco funciona em outro serviço. Você ainda precisa configurar a comunicação entre essas partes, pois o isolamento não fornece automaticamente credenciais, endereços ou disponibilidade das dependências.
A imagem fornece a base
Uma imagem de container reúne arquivos e configurações usados na criação. Ela continua existindo depois disso e pode originar várias instâncias, cada uma com sua identidade e suas opções de execução.
Essas opções podem definir o comando inicial, variáveis, redes e armazenamento. Dois containers da mesma imagem podem se comportar de maneiras diferentes quando recebem configurações distintas, como o endereço de teste ou de produção de uma API.
Parar e remover têm efeitos diferentes
Uma parada encerra a execução, mas normalmente preserva o container e sua camada gravável em disco. Iniciar esse mesmo container novamente permite reencontrar arquivos guardados nessa camada, embora o estado que existia apenas na memória do processo não seja recuperado automaticamente.
A remoção elimina a camada gravável associada ao container. Um novo container criado da mesma imagem não recebe as alterações locais do anterior, por isso os arquivos que precisam sobreviver à substituição devem usar armazenamento apropriado, como um volume.
Persistência precisa corresponder ao caminho usado
O volume precisa estar ligado ao diretório onde a aplicação realmente grava. Montar um volume em outro caminho não protege os arquivos deixados na camada gravável, mesmo que a configuração mostre um armazenamento associado.
Também existem montagens temporárias em memória, como tmpfs, cujo conteúdo desaparece quando a execução termina. Confira o tipo e o destino da montagem antes de concluir que os arquivos serão preservados.
Isolamento não elimina limites do host
Containers no mesmo host usam recursos dessa máquina e podem competir por memória, CPU e armazenamento. Limites e permissões precisam ser configurados conforme a aplicação, e conceder acesso amplo ao host reduz a separação que você pretendia obter.
Alguns ambientes de desenvolvimento executam containers Linux dentro de uma máquina virtual intermediária. O kernel compartilhado pertence a esse ambiente Linux, mesmo quando o computador usa outro sistema operacional.
Como conferir a aplicação
Observe o estado do container, os registros do processo e uma chamada representativa à aplicação. Um processo ativo pode estar aguardando uma dependência indisponível, e um teste que só confirma sua existência não demonstra que o cadastro ou a consulta funciona.
Ao investigar uma configuração de Docker ou um serviço que encerra após iniciar, o Desenvolvimento Colaborativo da Dev Side Studio oferece orientação técnica ao vivo. A tarefa pode partir dos logs e do comportamento observado no seu ambiente.
Dúvidas frequentes
Perguntas frequentes sobre Container
- Parar um container apaga todos os seus arquivos?
- Não. A camada gravável do container permanece após uma parada comum e pode ser reutilizada ao iniciá-lo novamente. A remoção elimina essa camada. Arquivos em memória temporária têm outro comportamento.
- A imagem se transforma no container?
- A imagem permanece disponível como base. O Docker cria um container a partir dela, e vários containers podem usar a mesma imagem com configurações e processos próprios.
- Container em execução significa aplicação funcionando?
- Não. O processo pode estar ativo e falhar ao acessar o banco ou responder a uma chamada. É preciso conferir o comportamento esperado, além do estado exibido pelo Docker.
- Um container equivale a uma máquina virtual?
- No modelo Linux usual, ele compartilha o kernel do sistema que o executa. Uma máquina virtual possui seu próprio sistema operacional convidado. O nível de isolamento e a configuração também diferem.
Para continuar
Recursos relacionados
Documentação
Docker: conceito de container
Processos isolados e relação com máquinas virtuais.
Abrir recursoDocumentação
Docker: execução de containers
Configuração de processos, recursos, redes e verificações.
Abrir recursoDocumentação
Docker: armazenamento
Camada gravável, volumes e armazenamento temporário.
Abrir recursoAplicação na formação
Formação DevOps
O container executa processos com isolamento e recursos definidos a partir da imagem e da configuração utilizadas.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.