This is the Trace Id: 04efaeb7b925cd882ecfe9c73d315317
Pular para o conteúdo principal Explore Confira todos os produtos(200+) Microsoft Foundry Azure Copilot GitHub Copilot Serviço de Kubernetes do Azure (AKS) Azure Cosmos DB Banco de Dados do Azure para PostgreSQL Azure Arc Microsoft Fabric Máquinas virtuais do Linux no Azure Modelos da Fábrica Serviço de Agente da Fábrica Foundry IQ Foundry Tools Plano de Controle do Foundry Observabilidade no Plano de Controle do Foundry OpenAI do Azure em Modelos da Fábrica Serviço Cognitivo do Azure para Fala no Foundry Tools Azure Machine Learning Exibir todos os bancos de dados Azure Cosmos DB Azure DocumentDB SQL do Azure Banco de Dados do Azure para PostgreSQL Redis Gerenciado pelo Azure Microsoft Fabric Azure Databricks Máquinas virtuais do Linux no Azure Windows Server no Azure Azure Functions Conjuntos de Dimensionamento de Máquinas Virtuais do Azure Gerenciamento de API do Azure Aplicativos de Contêiner do Azure Serviço de Kubernetes do Azure (AKS) O Gerenciador de Frota de Kubernetes do Azure Registro de Contêiner do Azure Red Hat OpenShift no Azure Instâncias de Contêiner do Azure Armazenamento de contêineres do Azure Azure Arc Azure Local Microsoft Defender para Nuvem Azure Monitor Microsoft Sentinel Migrações para Azure Veja todas as soluções (40+) Soluções em nuvem para pequenos e médios negócios Centro de migração e modernização da nuvem Análise de dados para IA Bancos de Dados do Azure Agentes e aplicativos de IA Microsoft Marketplace Microsoft Sovereign Cloud Agentes e aplicativos de IA IA responsável com o Azure Infraestrutura de IA Análise de dados para IA Operações de aprendizado de máquina (MLOps) Desenvolvimento de aplicativos de low-code no Azure Serviços de integração Computação sem servidor DevOps Centro de migração e modernização Migração de aplicativos .NET Bancos de dados no Azure Linux no Azure Oracle no Azure SAP no Microsoft Cloud Nuvem adaptável HPC (computação de alto desempenho) IaaS (infraestrutura como serviço) Resiliência Azure Essentials Frontier Accelerate para Azure FinOps no Azure Microsoft Marketplace Visão geral dos preços do Azure Crie uma conta do Azure Serviços gratuitos do Azure Opções de compra flexíveis Calculadora de preços FinOps no Azure Maximize o ROI com IA Plano econômicos do Azure Reservas do Azure Benefício Híbrido do Azure Máquinas Virtuais SQL do Azure Microsoft Foundry Microsoft Fabric Serviço de Kubernetes do Azure (AKS) Microsoft Defender para Nuvem Ver mais Empresas de desenvolvimento de software Microsoft Marketplace Encontre um parceiro Recursos para parceiros do Azure Introdução ao Azure Histórias de clientes Relatórios do analista, white papers e livros eletrônicos Vídeos Saiba mais sobre a computação em nuvem Documentação Explore o portal do Azure Recursos para desenvolvedores Modelos de início rápido Recursos para startups Developer Community Estudantes Azure para parceiros Blog Eventos e webinars Aprenda Suporte Entre em contato com o departamento de vendas Introdução ao Azure Entrar

Kubernetes vs. Docker: Qual é a diferença?

Saiba como o Docker e o Kubernetes funcionam, como eles diferem e quando as equipes usam cada uma para criar, implantar e gerenciar aplicativos.

O que são o Docker e o Kubernetes?

O Docker e o Kubernetes geralmente são mencionados juntos quando as equipes falam sobre o desenvolvimento de aplicativos, mas não são a mesma coisa. O Docker se concentra em como os aplicativos são empacotados e executados, enquanto o Kubernetes se concentra em como esses aplicativos são gerenciados quando estão em uso, especialmente à medida que os sistemas ficam cada vez mais complexos.

Principais conclusões

  • O Docker e o Kubernetes resolvem problemas diferentes e são comumente usados juntos, não como tecnologias concorrentes.
  • O Docker se concentra no empacotamento e na execução consistente de aplicativos em ambientes de desenvolvimento e produção.
  • O Kubernetes gerencia aplicativos em escala, manipulando a disponibilidade, a coordenação e a confiabilidade à medida que os sistemas crescem.
  • Os contêineres dão suporte a práticas de desenvolvimento modernas, incluindo arquiteturas de microsserviços e fluxos de trabalho de DevOps.
  • As organizações usam tecnologias de contêiner para criar aplicativos nativos de nuvem seguros, portáteis e escalonáveis.
  • Juntos, o Docker e o Kubernetes mostram como as tecnologias de contêiner evoluiu do empacotamento de aplicativos para uma infraestrutura gerenciada e escalonável.

Kubernetes vs. Docker

Os desenvolvedores geralmente criam e executam aplicativos dentro de contêineres. Nesse contexto, um contêiner é um pacote que inclui um aplicativo juntamente com tudo o que ele precisa para ser executado, como bibliotecas, dependências e arquivos de configuração. Os contêineres ajudam o software a ser executado consistentemente em ambientes de desenvolvimento, teste e produção, incluindo em um servidor em nuvem.

O Docker e o Kubernetes são duas tecnologias amplamente usadas nesse espaço. Para entender a diferença entre o Docker e o Kubernetes, é preciso começar analisando para que cada um deles foi projetado.

Qual é a diferença entre o Docker e o Kubernetes?

O Docker e o Kubernetes são usados em ambientes baseados em contêiner, mas têm finalidades diferentes.

O Docker se concentra na conteinerização. Ele empacota aplicativos e suas dependências em contêineres padronizados para que eles sejam executados consistentemente entre ambientes, do laptop de um desenvolvedor à produção. Em essência, o Docker opera no nível do aplicativo, criando imagens de contêiner e executando esses contêineres de forma confiável onde quer que o Docker esteja disponível.

O Kubernetes foi projetado para orquestração de contêineres. Ele opera no nível da infraestrutura, gerenciando como os contêineres são implantados, dimensionados e mantidos em clusters de computadores. O Kubernetes agenda contêineres com base nos recursos disponíveis, monitora a integridade do aplicativo, reinicia os contêineres com falha e manipula a rede para que os aplicativos distribuídos continuem funcionando sem problemas.

Em resumo, o Docker prepara e executa contêineres, enquanto o Kubernetes gerencia esses contêineres quando eles estão em movimento.

Como suas responsabilidades são complementares, o Docker e o Kubernetes geralmente são usados juntos. O Docker compila as imagens de contêiner e o Kubernetes assume após a implantação para coordenar e monitorar esses contêineres entre ambientes.

Observe que o Kubernetes não está vinculado exclusivamente ao Docker. Por meio de uma interface de runtime de contêiner padrão, o Kubernetes pode orquestrar contêineres criados com outros runtimes compatíveis. Essa flexibilidade permite que o Kubernetes sem o Docker gerencie cargas de trabalho em contêineres, mesmo em ambientes em que o Docker não é usado diretamente.

Benefícios e casos de uso do Docker e do Kubernetes

Benefícios e casos de uso do Docker e do Kubernetes

Ao decidir entre Kubernetes, Docker ou ambos, as equipes normalmente consideram fatores como complexidade do aplicativo, escala de implantação e quanto de automação é necessária para gerenciar cargas de trabalho ao longo do tempo. Alguns ambientes se beneficiam de contêineres simples, enquanto outros exigem orquestração em vários sistemas.

Benefícios do Docker

O Docker se concentra na criação e execução de contêineres. Ele simplifica como os aplicativos são empacotados para que possam ser executados consistentemente em ambientes de desenvolvimento, teste e produção. Os principais benefícios incluem:

  • Empacotamento de aplicativo padronizado. O Docker empacota um aplicativo e suas dependências em uma imagem de contêiner. Isso garante que o aplicativo seja executado da mesma maneira, independentemente de onde ele é implantado, ajudando a reduzir problemas relacionados ao ambiente durante o desenvolvimento e a versão.
  • Ambientes locais e de produção consistentes. Os desenvolvedores podem criar e testar aplicativos localmente usando as mesmas imagens de contêiner que são executadas em produção. Essa consistência ajuda as equipes a identificar problemas anteriores e simplificar as entregas entre o desenvolvimento e as operações.
  • Runtime de contêiner leve e portátil. Os contêineres do Docker começam rapidamente e usam menos recursos do que as máquinas virtuais tradicionais. Isso os torna adequados para desenvolvimento de aplicativos em evolução e iteração rápida.

Esses recursos ajudam as equipes a criar e enviar aplicativos com mais eficiência, simplificando como o software é empacotado e executado.

Casos de uso do Docker

  • Desenvolvimento e testes de aplicativos. As equipes de desenvolvimento usam o Docker para criar ambientes repetíveis para criar e testar software. Isso é comum em fluxos de trabalho ágeis e de DevOps, nos quais alterações frequentes precisam ser validadas rapidamente.
  • Aplicativos baseados em microsserviços. Aplicativos divididos em serviços menores geralmente dependem do Docker para empacotar cada serviço de forma independente. Isso permite que as equipes desenvolvam, atualizem e implantem componentes sem afetar todo o sistema.
  • Pipelines de integração contínua e entrega contínua (CI/CD). Contêineres do Docker são comumente usados em pipelines de integração contínua e entrega contínua. Sistemas automatizados podem criar imagens de contêiner, executar testes e preparar aplicativos para implantação de maneira consistente e repetível.

Benefícios do Kubernetes

O Kubernetes gerencia contêineres depois que eles são implantados, especialmente em vários computadores. Ele adiciona automação que ajuda a manter a disponibilidade e a confiabilidade do aplicativo em ambientes distribuídos. Os principais benefícios incluem:

  • Dimensionamento automatizado com base na demanda do aplicativo. O Kubernetes monitora cargas de trabalho e ajusta o número de contêineres em execução conforme a demanda muda. Isso ajuda a manter o desempenho durante picos de tráfego sem intervenção manual.
  • Autorrecuperação por meio da substituição de contêiner. Quando um contêiner falha ou deixa de responder, o Kubernetes detecta o problema e o substitui automaticamente. Esse monitoramento contínuo ajuda a manter os aplicativos disponíveis mesmo quando componentes individuais falham.
  • Implantações sem interrupção para atualizações controladas. O Kubernetes introduz atualizações gradualmente substituindo contêineres em uma sequência definida. Isso reduz o tempo de inatividade e dá suporte à entrega contínua sem interromper cargas de trabalho ativas.

Esses recursos ajudam a manter os aplicativos em execução sem problemas à medida que as cargas de trabalho são dimensionados ou alterados em toda a infraestrutura.

Casos de uso do Kubernetes

  • Aplicativos distribuídos com vários serviços. Aplicativos compostos por muitos componentes interconectados exigem coordenação entre sistemas. Por exemplo, uma plataforma de comércio eletrônico pode executar contêineres separados para pagamentos, inventário e contas de clientes. O Kubernetes gerencia a comunicação e a implantação entre esses serviços.
  • Sistemas de produção que exigem alta disponibilidade. Os aplicativos que dão suporte à atividade do usuário ativo dependem da automação para minimizar o tempo de inatividade. Plataformas de streaming, serviços financeiros e ferramentas de colaboração geralmente dependem do Kubernetes para monitorar cargas de trabalho e responder a falhas.
  • Cargas de trabalho com padrões de tráfego imprevisíveis. Aplicativos com uso flutuante se beneficiam do dimensionamento automatizado. Sites de varejo durante as plataformas de vendas sazonais ou de tíquetes durante lançamentos de eventos geralmente usam o Kubernetes para ajustar os recursos conforme a demanda muda.

O Kubernetes também pode orquestrar contêineres sem depender diretamente do Docker. Ao dar suporte a vários runtimes de contêiner, o Kubernetes pode gerenciar cargas de trabalho em contêineres criadas com tecnologias compatíveis.

Usando o Docker e o Kubernetes juntos

O Docker e o Kubernetes geralmente são usados juntos quando os aplicativos vão além das implantações de contêiner único e exigem gerenciamento coordenado entre ambientes.

Em pipelines de CI/CD, o Docker fornece contêineres portáteis que empacotam o código do aplicativo e as dependências em ambientes de runtime consistentes. Em seguida, o Kubernetes gerencia esses contêineres durante a implantação agendando cargas de trabalho em toda a infraestrutura disponível e monitorando seu desempenho.

Os aplicativos nativos de nuvem também dependem de ambas as tecnologias que funcionam em conjunto. O Docker empacota componentes de aplicativo em contêineres, enquanto o Kubernetes orquestra esses contêineres entre clusters para manter a disponibilidade e dar suporte ao dimensionamento conforme a demanda muda.

Em arquiteturas distribuídas que envolvem vários contêineres em execução entre sistemas, o gerenciamento automatizado se torna essencial. O Docker prepara cargas de trabalho em contêineres para implantação e o Kubernetes gerencia como essas cargas de trabalho são executadas, comunicadas e recuperadas de falhas na infraestrutura.

Juntos, o Kubernetes e o Docker dão suporte ao gerenciamento de contêiner coordenado em todo o ciclo de vida do aplicativo.

Como as tecnologias de contêiner estão evoluindo

O Docker e o Kubernetes dão suporte a estágios diferentes, mas conectados, do ciclo de vida do contêiner, e é por isso que eles geralmente são usados juntos em arquiteturas de aplicativo atuais.

O Docker se concentra no empacotamento de aplicativos e suas dependências em contêineres portáteis que são executados consistentemente entre ambientes. O Kubernetes se baseia nessa base gerenciando contêineres em escala, coordenando como eles são implantados, em rede, monitorados e recuperados em sistemas distribuídos.

Essa combinação reflete mudanças mais amplas em como os aplicativos são projetados e operados. As arquiteturas nativas de nuvem dependem cada vez mais de microsserviços, pipelines de implantação automatizados e infraestrutura que podem se adaptar à demanda em constante mudança.

À medida que as organizações adotam estratégias híbridas e de várias nuvens, o empacotamento de contêineres fornece consistência, enquanto as plataformas de orquestração permitem flexibilidade entre ambientes. O Kubernetes se expandiu além de um único runtime de contêiner, permitindo que as equipes orquestrem cargas de trabalho em contêineres usando padrões abertos em vez de serem vinculados a uma abordagem de ferramentas.

Essas tendências moldaram como as plataformas em nuvem dão suporte à entrega de aplicativos baseados em contêiner. Por exemplo, o Microsoft Azure fornece serviços gerenciados que se alinham com diferentes níveis de maturidade do contêiner. O Serviço de Kubernetes do Azure (AKS) oferece clusters do Kubernetes gerenciados, permitindo que as equipes se concentrem na implantação e na operação de aplicativos sem gerenciar a infraestrutura subjacente. Para cenários em que a orquestração completa não é necessária, os Aplicativos de Contêiner do Azure dão suporte à execução de aplicativos em contêineres com dimensionamento e gerenciamento internos, abstraindo grande parte da complexidade operacional.

Juntos, o Docker e o Kubernetes ilustram como as tecnologias de contêiner evoluiu do empacotamento de aplicativo simples para o gerenciamento de infraestrutura em escala completa. À medida que as arquiteturas distribuídas se tornam mais comuns, as plataformas de orquestração e os serviços de nuvem gerenciados desempenham um papel cada vez mais central no suporte a sistemas confiáveis e escalonáveis baseados em contêiner.

plano de fundo gradiente
Recursos

Explore os recursos para desenvolvedores

Saiba mais sobre as tecnologias mais recentes para desenvolvedores com uma ampla variedade de recursos para alunos e profissionais.
mulher sentada diante de três monitores que exibem código de software
Recursos do Azure

Visite a central de recursos do Azure

Encontre programas gratuitos de treinamento e certificação do Azure, vídeos de instruções sobre o Azure e relatórios de analistas e livros eletrônicos
homem usando um laptop no escritório em casa
Recursos para estudantes de programação

Dê um impulso inicial à sua carreira em tecnologia

Conheça as tecnologias de nuvem e desenvolva suas habilidades de desenvolvedor com ferramentas e programas para estudantes.
Grupo de pessoas usando laptops e assistindo a uma apresentação em uma sala de conferências
Eventos do Azure

Explore os eventos e webinars do Azure

Conecte-se com especialistas e desenvolvedores do Azure em eventos digitais, presenciais e treinamentos virtuais.
Perguntas frequentes

Perguntas frequentes

  • O Docker e o Kubernetes têm funções diferentes, mas complementares. O Docker se concentra em como os aplicativos são empacotados e executados, enquanto o Kubernetes se concentra em como esses aplicativos são gerenciados depois de implantados, especialmente à medida que os sistemas se tornam mais complexos. Em resumo, o Docker prepara os aplicativos para serem executados de forma consistente e o Kubernetes os gerencia em escala entre ambientes.
  • O Docker e o Kubernetes não são tecnologias concorrentes e a maioria das equipes não escolhe uma em vez da outra. O Docker geralmente é usado anteriormente no ciclo de vida do aplicativo para empacotar e executar aplicativos, enquanto o Kubernetes é usado posteriormente para gerenciar esses aplicativos em produção. A escolha certa depende da complexidade do aplicativo, da escala e das necessidades operacionais.
  • O Kubernetes não substitui o Docker porque eles executam funções diferentes. O Kubernetes foi projetado para orquestrar contêineres após a implantação, não para empacotar ou compilar aplicativos. Embora o Kubernetes possa gerenciar contêineres criados com runtimes diferentes, ferramentas como o Docker ainda são comumente usadas para preparar imagens de contêiner durante fluxos de trabalho de desenvolvimento e entrega.
  • Sim, você pode usar o Docker sem Kubernetes, especialmente em ambientes mais simples. As equipes geralmente usam o Docker sozinho para desenvolvimento de aplicativos, testes ou implantações menores em que a orquestração completa não é necessária. Nesses casos, o Docker fornece uma maneira simples de empacotar e executar aplicativos sem a complexidade adicional de gerenciar um cluster do Kubernetes.
Português (Brasil) Privacidade dos Dados de Saúde do Consumidor Entre em contato com a Microsoft Privacidade Gerenciar cookies Ética e Compliance Nota Legal Marcas Sobre os nossos anúncios