{"id":53239,"date":"2026-02-04T19:07:03","date_gmt":"2026-02-04T22:07:03","guid":{"rendered":"\/br\/tutoriais\/?p=53239"},"modified":"2026-02-04T19:07:04","modified_gmt":"2026-02-04T22:07:04","slug":"o-que-e-docker-compose","status":"publish","type":"post","link":"\/br\/tutoriais\/o-que-e-docker-compose\/","title":{"rendered":"O que \u00e9 Docker Compose e como usar"},"content":{"rendered":"<p class=\"wp-block-paragraph\">O Docker Compose &eacute; uma ferramenta criada para definir e executar projetos com m&uacute;ltiplos containers. Ele &eacute; muito usado por desenvolvedores para simplificar a gest&atilde;o de servi&ccedil;os que dependem uns dos outros &mdash; como uma aplica&ccedil;&atilde;o front-end conectada a um banco de dados &mdash; permitindo administrar toda a stack de forma centralizada.<\/p><p class=\"wp-block-paragraph\">Em termos simples, quando falamos o que &eacute; Docker Compose, estamos falando de uma forma pr&aacute;tica de organizar e rodar v&aacute;rios containers ao mesmo tempo, sem precisar gerenciar cada um separadamente.<\/p><p class=\"wp-block-paragraph\">Usando um &uacute;nico arquivo YAML, o Docker Compose permite definir toda a infraestrutura necess&aacute;ria para a aplica&ccedil;&atilde;o, incluindo a imagem dos containers, a configura&ccedil;&atilde;o de rede interna e os volumes persistentes. Depois disso, basta executar o comando <strong>docker compose up<\/strong> para criar e iniciar todos os containers com base nessa configura&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">Ao longo do ciclo de vida do projeto, voc&ecirc; pode gerenciar os containers com outros comandos do Compose. Por exemplo, <strong>docker compose down<\/strong> encerra e remove todos os servi&ccedil;os, enquanto <strong>docker compose ps<\/strong> lista os containers em execu&ccedil;&atilde;o definidos no arquivo YAML.<\/p><p class=\"wp-block-paragraph\">Para usar o Docker Compose, &eacute; necess&aacute;rio ter o Docker Engine e a Docker CLI instalados. Em seguida, voc&ecirc; pode configurar o Compose baixando o plugin pelo gerenciador de pacotes do seu sistema ou pelo Homebrew. Se voc&ecirc; usa o Docker Desktop, o Docker Compose j&aacute; vem inclu&iacute;do por padr&atilde;o.<\/p><p class=\"wp-block-paragraph\">Continue explorando para entender melhor o que &eacute; Docker Compose e como ele pode facilitar o gerenciamento de aplica&ccedil;&otilde;es baseadas em m&uacute;ltiplos containers.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-what-is-docker-compose\"><strong>O que &eacute; Docker Compose?<\/strong><\/h2><p class=\"wp-block-paragraph\">O Docker Compose &eacute; uma ferramenta que permite definir e executar aplica&ccedil;&otilde;es Docker com m&uacute;ltiplos containers de forma simples. Seu principal objetivo &eacute; centralizar e padronizar o gerenciamento de v&aacute;rios servi&ccedil;os que fazem parte da mesma aplica&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">De forma pr&aacute;tica, quando algu&eacute;m pergunta o que &eacute; Docker Compose, a resposta &eacute;: uma maneira eficiente de organizar como os containers de uma aplica&ccedil;&atilde;o funcionam juntos. Ele usa um &uacute;nico arquivo YAML, onde voc&ecirc; define tudo sobre os servi&ccedil;os &mdash; qual imagem cada um usa, como eles se comunicam entre si e onde os dados persistentes s&atilde;o armazenados. Com essa configura&ccedil;&atilde;o, fica muito mais f&aacute;cil criar, iniciar e gerenciar os containers.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-does-docker-compose-work\"><strong>Como o Docker Compose funciona?<\/strong><\/h2><p class=\"wp-block-paragraph\">O Docker Compose funciona definindo tr&ecirc;s componentes principais de aplica&ccedil;&otilde;es com m&uacute;ltiplos containers em um arquivo YAML: <strong>services<\/strong> (servi&ccedil;os), <strong>networks<\/strong> (redes) e <strong>volumes<\/strong>.<\/p><p class=\"wp-block-paragraph\">Quando voc&ecirc; faz o deploy de uma aplica&ccedil;&atilde;o a partir desse arquivo, o Docker Compose faz o pull ou o build da imagem necess&aacute;ria para criar cada servi&ccedil;o &mdash; que, na pr&aacute;tica, &eacute; um container em execu&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">Em seguida, o Docker Compose cria uma rede interna para permitir que os servi&ccedil;os se comuniquem entre si e inicializa os volumes, usados para armazenar dados persistentes que podem ser compartilhados entre containers. Ele tamb&eacute;m configura as vari&aacute;veis de ambiente de cada servi&ccedil;o, facilitando a troca de informa&ccedil;&otilde;es sem precisar &ldquo;hardcodar&rdquo; dados sens&iacute;veis dentro das imagens.<\/p><p class=\"wp-block-paragraph\">Todas essas defini&ccedil;&otilde;es &mdash; qual imagem usar, como a rede ser&aacute; configurada, onde os volumes persistentes ser&atilde;o montados e quais vari&aacute;veis de ambiente incluir &mdash; ficam centralizadas no arquivo YAML. Isso significa que voc&ecirc; consegue criar, iniciar e gerenciar toda a aplica&ccedil;&atilde;o a partir de um &uacute;nico arquivo.<\/p><h3 class=\"wp-block-heading\" id=\"h-example-of-a-docker-compose-yaml-file\"><strong>Exemplo de arquivo YAML do Docker Compose<\/strong><\/h3><p class=\"wp-block-paragraph\">Abaixo est&aacute; um exemplo real de um arquivo YAML do Docker Compose que define um projeto com dois servi&ccedil;os interligados: uma aplica&ccedil;&atilde;o web simples e uma inst&acirc;ncia de cache Redis.<\/p><p class=\"wp-block-paragraph\">Para facilitar o entendimento, os coment&aacute;rios explicam o que cada linha faz:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services:\n  web: # Servi&ccedil;o da aplica&ccedil;&atilde;o web\n    build: . # Cria a imagem a partir do Dockerfile no diret&oacute;rio atual\n    ports:\n      - \"8000:5000\" # Mapeia a porta 8000 do host para a porta 5000 do container\n    depends_on:\n      - redis # Garante que o servi&ccedil;o 'redis' seja iniciado antes do 'web'\n    volumes:\n      - .\/:\/app # Monta o diret&oacute;rio atual no container em \/app (bind mount)\n    environment:\n      REDIS_HOST: ${REDIS_HOST:-redis} # Define REDIS_HOST via vari&aacute;vel de ambiente ou usa 'redis' como padr&atilde;o\n\n  redis: # Servi&ccedil;o do cache Redis\n    image: redis:6 # Usa a imagem oficial do Redis (vers&atilde;o 6)\n    expose:\n      - \"6379\" # Exp&otilde;e a porta 6379 apenas para outros servi&ccedil;os na rede Docker\n    volumes:\n      - redis_data:\/data # Persiste os dados do Redis em um volume nomeado\n\nvolumes:\n  redis_data: {} # Declara o volume nomeado para persist&ecirc;ncia dos dados do Redis<\/pre><p class=\"wp-block-paragraph\">Vale notar que, dependendo da sua aplica&ccedil;&atilde;o, dos servi&ccedil;os usados e da configura&ccedil;&atilde;o necess&aacute;ria, o conte&uacute;do do arquivo YAML pode variar bastante.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-install-docker-compose\"><strong>Como instalar o Docker Compose<\/strong><\/h2><p class=\"wp-block-paragraph\">Os passos para instalar o Docker Compose variam de acordo com o tipo de instala&ccedil;&atilde;o do Docker e com o sistema operacional que voc&ecirc; usa.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; utiliza o <strong>Docker Desktop<\/strong>, o Compose j&aacute; vem configurado por padr&atilde;o. J&aacute; no <strong>Docker CLI<\/strong>, &eacute; poss&iacute;vel instalar o plugin do Compose pelo reposit&oacute;rio oficial ou manualmente. Aqui, vamos mostrar o m&eacute;todo pelo reposit&oacute;rio oficial, que facilita atualiza&ccedil;&otilde;es futuras.<\/p><p class=\"wp-block-paragraph\">Antes de continuar, certifique-se de que o Docker Engine e a Docker CLI j&aacute; est&atilde;o configurados. Caso ainda n&atilde;o estejam, vale conferir nosso <a href=\"\/br\/tutoriais\/instalar-docker-ubuntu\/\">guia de instala&ccedil;&atilde;o do Docker no Ubuntu<\/a> para ver o passo a passo completo.<\/p><p class=\"wp-block-paragraph\">Depois de configurar o Engine e a CLI, instale o Docker Compose conforme o seu sistema operacional. No Linux, a instala&ccedil;&atilde;o pode ser feita usando o gerenciador de pacotes do sistema. Em distribui&ccedil;&otilde;es baseadas em Debian, como Ubuntu, use os comandos abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install docker-compose-plugin<\/pre><p class=\"wp-block-paragraph\">Se voc&ecirc; estiver usando uma distribui&ccedil;&atilde;o que n&atilde;o seja baseada em Debian, basta substituir o <strong>apt<\/strong> pelo gerenciador de pacotes correspondente. Por exemplo, em distribui&ccedil;&otilde;es baseadas em RHEL, use <strong>dnf<\/strong>.<\/p><p class=\"wp-block-paragraph\">No macOS, voc&ecirc; pode instalar o Docker Compose via Homebrew com o comando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install docker-compose<\/pre><p class=\"wp-block-paragraph\">Tanto no Linux quanto no macOS, d&aacute; para verificar se o Docker Compose foi instalado corretamente executando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose version<\/pre><p class=\"wp-block-paragraph\">Se tudo estiver configurado corretamente, o terminal exibir&aacute; a vers&atilde;o do Docker Compose instalada no sistema.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a74b4a06e0db\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a74b4a06e0db\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/10\/terminal-outputs-the-installed-docker-compose-version.png\/public\" alt=\"Terminal exibindo a vers&atilde;o instalada do Docker Compose\" class=\"wp-image-135625\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-how-to-use-docker-compose\"><strong>Como usar o Docker Compose<\/strong><\/h2><p class=\"wp-block-paragraph\">Usar o Docker Compose permite definir a configura&ccedil;&atilde;o da aplica&ccedil;&atilde;o, executar toda a stack e gerenciar seu ciclo de vida usando uma &uacute;nica ferramenta.<\/p><p class=\"wp-block-paragraph\">Para mostrar o que &eacute; Docker Compose na pr&aacute;tica e como ele funciona em um cen&aacute;rio real, vamos imaginar que voc&ecirc; queira <a href=\"\/br\/tutoriais\/wordpress-docker\/\">rodar o WordPress no Ubuntu usando Docker<\/a>. O fluxo b&aacute;sico seria assim:<\/p><ol class=\"wp-block-list\">\n<li>Use um editor de texto, como o <a href=\"\/br\/tutoriais\/como-instalar-editor-de-texto-nano\/\">nano<\/a>, para criar um arquivo de configura&ccedil;&atilde;o YAML ou YML. Voc&ecirc; pode usar qualquer nome, mas o ideal &eacute; manter os padr&otilde;es <strong>docker-compose.yml<\/strong> ou <strong>compose.yaml<\/strong>, pois isso facilita o gerenciamento.<\/li>\n\n\n\n<li>Dentro do arquivo YAML, defina as imagens do WordPress e do MySQL, junto com suas configura&ccedil;&otilde;es &mdash; como rede, volumes persistentes e depend&ecirc;ncias entre servi&ccedil;os.<\/li>\n\n\n\n<li>Use o Docker Compose para criar e iniciar todos os servi&ccedil;os com base no arquivo de configura&ccedil;&atilde;o:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose up<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Ao longo do projeto, pode ser necess&aacute;rio parar e remover todos os containers para manuten&ccedil;&atilde;o ou atualiza&ccedil;&otilde;es. Para isso, execute:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose down<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; pode alterar o comportamento do comando <strong>docker compose<\/strong> usando flags. Por exemplo, se o arquivo de configura&ccedil;&atilde;o n&atilde;o tiver o nome padr&atilde;o, use a flag<strong> -f<\/strong> ou <strong>&ndash;file<\/strong> para indicar qual arquivo o Docker deve ler:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose -f seu-arquivo-do-compose.yaml up<\/pre><p class=\"wp-block-paragraph\">Por padr&atilde;o, o Docker Compose cria os containers no diret&oacute;rio atual. Para fazer o deploy a partir de outro local, use a flag <strong>&ndash;project-directory<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose --project-directory \/full\/deployment\/path up<\/pre><p>\n\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Executando containers em segundo plano &#128230;                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Por padr&atilde;o, o Docker Compose executa a aplica&ccedil;&atilde;o diretamente na sess&atilde;o principal do terminal. Se voc&ecirc; quiser rodar tudo em segundo plano, adicione a flag <strong>-d<\/strong> ou <strong>--detach<\/strong>.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><p class=\"wp-block-paragraph\">Tamb&eacute;m &eacute; poss&iacute;vel combinar v&aacute;rias flags usando uma barra invertida. Por exemplo, para fazer o deploy a partir de um arquivo YAML com nome espec&iacute;fico e em outro diret&oacute;rio:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose \\\n  -f \/path\/to\/my-docker-compose.yaml \\\n  --project-directory \/path\/to \\\n  up<\/pre><p class=\"wp-block-paragraph\">Ao remover containers, os dados continuam preservados porque ficam armazenados em volumes persistentes. Se voc&ecirc; quiser remover os volumes tamb&eacute;m, use a flag <strong>&ndash;volumes<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose down --volumes<\/pre><h3 class=\"wp-block-heading\" id=\"h-common-docker-compose-commands\"><strong>Comandos mais usados do Docker Compose<\/strong><\/h3><p class=\"wp-block-paragraph\">Al&eacute;m dos comandos <strong>up<\/strong> e <strong>down<\/strong>, o Docker Compose oferece v&aacute;rias op&ccedil;&otilde;es para gerenciar toda a stack da aplica&ccedil;&atilde;o. Os mais usados s&atilde;o:<\/p><ul class=\"wp-block-list\">\n<li><strong>docker compose ps<\/strong> &ndash; lista os containers em execu&ccedil;&atilde;o gerenciados pelo Docker Compose, incluindo nome, imagem, servi&ccedil;o, status e portas.<\/li>\n\n\n\n<li><strong>docker compose logs<\/strong> &ndash; exibe os logs de todos os servi&ccedil;os. Com a flag <strong>-f<\/strong>, os logs s&atilde;o mostrados em tempo real.<\/li>\n\n\n\n<li><strong>docker compose start<\/strong> &ndash; inicia containers existentes que estavam parados.<\/li>\n\n\n\n<li><strong>docker compose stop<\/strong> &ndash; para containers em execu&ccedil;&atilde;o sem remov&ecirc;-los.<\/li>\n\n\n\n<li><strong>docker compose restart<\/strong> &ndash; reinicia imediatamente os containers.<\/li>\n\n\n\n<li><strong>docker compose build<\/strong> &ndash; for&ccedil;a a reconstru&ccedil;&atilde;o das imagens definidas com <em>build<\/em> no arquivo YAML. Use <strong>&ndash;no-cache<\/strong> para um rebuild limpo.<\/li>\n\n\n\n<li><strong>docker compose push<\/strong> &ndash; envia todas as imagens criadas para seus registries remotos.<\/li>\n\n\n\n<li><strong>docker compose pull<\/strong> &ndash; baixa todas as imagens necess&aacute;rias para a stack sem iniciar os containers.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-what-s-the-difference-between-docker-vs-docker-compose\">Qual &eacute; a diferen&ccedil;a entre Docker e Docker Compose?<\/h2><p class=\"wp-block-paragraph\">O Docker re&uacute;ne v&aacute;rios conceitos, termos e ferramentas, cada um com uma fun&ccedil;&atilde;o espec&iacute;fica dentro do ecossistema de containers. Entender essas diferen&ccedil;as ajuda a usar a plataforma de forma mais eficiente.<\/p><p class=\"wp-block-paragraph\">O Docker Compose faz parte desse ecossistema e costuma ser confundido com o Docker CLI. Ambos s&atilde;o ferramentas de linha de comando usadas para gerenciar recursos no Docker, mas t&ecirc;m prop&oacute;sitos diferentes.<\/p><p class=\"wp-block-paragraph\">A seguir, veja uma compara&ccedil;&atilde;o direta entre Docker CLI e Docker Compose:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><thead><tr><th>Aspecto<\/th><th>Docker CLI<\/th><th>Docker Compose<\/th><\/tr><\/thead><tbody><tr><td><strong>Caso de uso<\/strong><\/td><td>Mais indicado para configura&ccedil;&otilde;es com um &uacute;nico container<\/td><td>Criado para aplica&ccedil;&otilde;es com m&uacute;ltiplos containers<\/td><\/tr><tr><td><strong>Orquestra&ccedil;&atilde;o<\/strong><\/td><td>Manual &ndash; &eacute; preciso iniciar cada container separadamente<\/td><td>Automatizada &ndash; todos os servi&ccedil;os s&atilde;o gerenciados a partir de um &uacute;nico arquivo YAML<\/td><\/tr><tr><td><strong>Formato de configura&ccedil;&atilde;o<\/strong><\/td><td>Definida diretamente no comando, usando flags<\/td><td>Declarada dentro de um arquivo YAML<\/td><\/tr><tr><td><strong>Reutiliza&ccedil;&atilde;o e portabilidade<\/strong><\/td><td>Dif&iacute;cil de compartilhar e reproduzir setups complexos, j&aacute; que a configura&ccedil;&atilde;o fica no comando<\/td><td>F&aacute;cil de versionar e reutilizar, pois toda a configura&ccedil;&atilde;o fica em um arquivo &uacute;nico<\/td><\/tr><tr><td><strong>Ambiente de testes e desenvolvimento<\/strong><\/td><td>Trabalhoso em ambientes com v&aacute;rios servi&ccedil;os<\/td><td>Ideal para desenvolvimento local, com todos os servi&ccedil;os centralizados<\/td><\/tr><tr><td><strong>Uso em produ&ccedil;&atilde;o<\/strong><\/td><td>Adequado para projetos simples<\/td><td>Pode ser usado em produ&ccedil;&atilde;o, mas costuma ser substitu&iacute;do por Docker Swarm ou Kuber<\/td><\/tr><\/tbody><\/table><\/figure><h2 class=\"wp-block-heading\" id=\"h-what-s-the-next-step-after-using-docker-compose\"><strong>Qual &eacute; o pr&oacute;ximo passo depois de usar o Docker Compose?<\/strong><\/h2><p class=\"wp-block-paragraph\">Depois de aprender o que &eacute; Docker Compose e como us&aacute;-lo, voc&ecirc; j&aacute; consegue gerenciar projetos com v&aacute;rios servi&ccedil;os de forma pr&aacute;tica e eficiente. No entanto, em cen&aacute;rios reais, &eacute; comum precisar trabalhar com containers individuais &mdash; seja para adicionar um novo servi&ccedil;o, ajustar configura&ccedil;&otilde;es espec&iacute;ficas ou resolver problemas pontuais da aplica&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">Vale lembrar que, embora o Docker Compose e os containers sejam conceitos centrais da plataforma, projetos maiores costumam exigir outras ferramentas. &Agrave; medida que sua aplica&ccedil;&atilde;o cresce, pode fazer sentido migrar para solu&ccedil;&otilde;es como Kubernetes ou Docker Swarm, que oferecem mais controle e confiabilidade no gerenciamento de m&uacute;ltiplos containers em escala.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; quiser fazer o deploy de uma aplica&ccedil;&atilde;o em containers usando um <a href=\"\/br\/servidor-vps\">VPS da Hostinger<\/a>, pode usar o <strong>Docker Compose Manager<\/strong>. Ele oferece um painel de gerenciamento integrado ao hPanel, facilitando tanto a implanta&ccedil;&atilde;o quanto a administra&ccedil;&atilde;o de aplica&ccedil;&otilde;es baseadas em Docker.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>O Docker Compose &eacute; uma ferramenta criada para definir e executar projetos com m&uacute;ltiplos containers. Ele &eacute; muito usado por desenvolvedores para simplificar a gest&atilde;o de servi&ccedil;os que dependem uns dos outros &mdash; como uma aplica&ccedil;&atilde;o front-end conectada a um banco de dados &mdash; permitindo administrar toda a stack de forma centralizada. Em termos simples, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/o-que-e-docker-compose\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":50798,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Descubra o que \u00e9 Docker Compose, como ele funciona e quando us\u00e1-lo para gerenciar apps com m\u00faltiplos containers de forma simples.","rank_math_focus_keyword":"o que \u00e9 docker compose","footnotes":""},"categories":[8062,8024],"tags":[],"class_list":["post-53239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aplicacoes-pre-instaladas","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/what-is-docker-compose\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/o-que-e-docker-compose\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/docker-compose-cest-quoi\/","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/was-ist-docker-compose\/","default":0},{"locale":"it-IT","link":"https:\/\/www.hostinger.com\/it\/tutorial\/cos-e-docker-compose\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/what-is-docker-compose\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/o-que-e-docker-compose\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/53239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=53239"}],"version-history":[{"count":1,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/53239\/revisions"}],"predecessor-version":[{"id":53240,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/53239\/revisions\/53240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/50798"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=53239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=53239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=53239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}