{"id":52020,"date":"2026-10-28T01:04:31","date_gmt":"2026-10-28T04:04:31","guid":{"rendered":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-docker-swarm\/"},"modified":"2026-10-28T01:04:31","modified_gmt":"2026-10-28T04:04:31","slug":"criar-docker-swarm","status":"publish","type":"post","link":"\/pt\/tutoriais\/criar-docker-swarm\/","title":{"rendered":"Como criar um Docker Swarm"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p class=\"wp-block-paragraph\">O Docker Swarm &eacute; uma ferramenta de orquestra&ccedil;&atilde;o de cont&ecirc;ineres que permite gerenciar v&aacute;rias inst&acirc;ncias do Docker Engine como um &uacute;nico sistema. Com ele, &eacute; poss&iacute;vel implantar e gerenciar aplica&ccedil;&otilde;es em cont&ecirc;ineres distribu&iacute;dos entre diferentes m&aacute;quinas. Dessa forma, a aplica&ccedil;&atilde;o continua funcionando mesmo que uma delas apresente falhas ou fique offline.<\/p><p class=\"wp-block-paragraph\">Neste artigo, voc&ecirc; vai aprender a configurar um Docker Swarm e implantar servi&ccedil;os em v&aacute;rias inst&acirc;ncias de servidor virtual privado (VPS). Ao final, saber&aacute; como criar e gerenciar um cluster escal&aacute;vel e de alta disponibilidade usando o Docker Swarm.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-pre-requisitos\">Pr&eacute;-requisitos<\/h2><p class=\"wp-block-paragraph\">Antes de criar um Docker Swarm, configure pelo menos duas m&aacute;quinas: uma para atuar como n&oacute; gerenciador e outra como n&oacute; de trabalho. Voc&ecirc; pode usar computadores pessoais, m&aacute;quinas virtuais, inst&acirc;ncias VPS ou outros ambientes compat&iacute;veis.<\/p><p class=\"wp-block-paragraph\">Neste tutorial, vamos usar <strong>tr&ecirc;s inst&acirc;ncias de VPS<\/strong> do <a data-click-id=\"hgr-post-content-link-servico-de-hospedagem-docker-da-hostinger\" href=\"\/pt\/docker-hosting\">servi&ccedil;o de hospedagem Docker da Hostinger<\/a>: uma como n&oacute; gerenciador e as outras duas como n&oacute;s de trabalho.<\/p><p class=\"wp-block-paragraph\">O Docker precisa de pelo menos <strong>4 GB<\/strong> de RAM para funcionar sem problemas. Por isso, nosso plano <strong>KVM 1<\/strong>, dispon&iacute;vel a partir de <strong>5,49\u20ac\/m&ecirc;s<\/strong>, deve ser suficiente. Ele oferece <strong>um<\/strong> n&uacute;cleo de CPU, <strong>4 GB<\/strong> de RAM e <strong>50 GB<\/strong> de armazenamento NVMe.<\/p><p class=\"wp-block-paragraph\">Se precisar de mais poder de processamento ou espa&ccedil;o de armazenamento, voc&ecirc; pode mudar para um plano superior a qualquer momento. Outra vantagem da hospedagem Docker da Hostinger &eacute; que o Docker e todos os seus componentes essenciais j&aacute; v&ecirc;m pr&eacute;-instalados, dispensando a configura&ccedil;&atilde;o manual.<\/p><figure class=\"wp-block-image size-large\"><a data-click-id=\"hgr-post-content-link-pt-alojamento-vps\" aria-label=\"Alojamento vps\" href=\"\/pt\/alojamento-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/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\/26\/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\/26\/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\/26\/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\/26\/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\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p class=\"wp-block-paragraph\">Depois de contratar as inst&acirc;ncias VPS, recomendamos alterar o nome de host de cada uma de acordo com sua fun&ccedil;&atilde;o no swarm. Essa etapa &eacute; opcional, mas facilita a leitura das informa&ccedil;&otilde;es e a identifica&ccedil;&atilde;o de cada n&oacute;.<\/p><p class=\"wp-block-paragraph\">Para alterar o nome de host do VPS na Hostinger, acesse <strong>Painel da Hostinger &rarr; VPS &rarr; Gerenciar &rarr; Vis&atilde;o geral &rarr; Detalhes do VPS<\/strong>. Em seguida, clique no <strong>&iacute;cone de l&aacute;pis<\/strong> ao lado do nome de host atual e renomeie as inst&acirc;ncias da seguinte forma:<\/p><ul class=\"wp-block-list\">\n<li><strong>N&oacute; gerenciador:<\/strong> manager.vps<\/li>\n\n\n\n<li><strong>N&oacute; de trabalho 1:<\/strong> worker1.vps<\/li>\n\n\n\n<li><strong>N&oacute; de trabalho 2:<\/strong> worker2.vps<\/li>\n<\/ul><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/manager-vps-detalhes-do-vps-vps-details-hpanel-hostinger-dashboard.png\/public\" alt=\"Informa&ccedil;&otilde;es do nome de host na p&aacute;gina Vis&atilde;o geral do VPS no hPanel\" class=\"wp-image-60371\"><\/figure><\/div><p class=\"wp-block-paragraph\">Se voc&ecirc; j&aacute; <a data-click-id=\"hgr-post-content-link-configurou-o-uncomplicated-firewall-ufw\" href=\"\/pt\/tutoriais\/firewall-ubuntu-ufw\/\">configurou o Uncomplicated Firewall (UFW)<\/a> no VPS, libere as seguintes portas para permitir a comunica&ccedil;&atilde;o entre os n&oacute;s do swarm:<\/p><ul class=\"wp-block-list\">\n<li><strong>2377 TCP:<\/strong> para gerenciamento do cluster e comunica&ccedil;&atilde;o entre os n&oacute;s.<\/li>\n\n\n\n<li><strong>7946 TCP\/UDP:<\/strong> para comunica&ccedil;&atilde;o entre os n&oacute;s do swarm.<\/li>\n\n\n\n<li><strong>4789 UDP:<\/strong> para o tr&aacute;fego da rede overlay entre cont&ecirc;ineres em n&oacute;s diferentes.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Se ainda n&atilde;o configurou o UFW ou acabou de contratar o VPS, pule esta etapa.<\/p><p class=\"wp-block-paragraph\">Para liberar as portas necess&aacute;rias, abra o terminal de cada inst&acirc;ncia e execute os comandos:<\/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 ufw allow 2377\/tcp\nsudo ufw allow 7946\/tcp\nsudo ufw allow 7946\/udp\nsudo ufw allow 4789\/udp<\/pre><p class=\"wp-block-paragraph\">Depois, execute o comando abaixo para verificar se o UFW est&aacute; ativo e se as regras foram aplicadas:<\/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 ufw status<\/pre><p class=\"wp-block-paragraph\">Tamb&eacute;m &eacute; &uacute;til conhecer os comandos b&aacute;sicos da interface de linha de comando (CLI) do Docker, pois voc&ecirc; vai us&aacute;-los para gerenciar os servi&ccedil;os no swarm. Confira nossa <a data-click-id=\"hgr-post-content-link-folha-de-dicas-do-docker\" href=\"\/pt\/tutoriais\/docker-cheat-sheet\/\">folha de dicas do Docker<\/a>, que re&uacute;ne os comandos mais usados para diferentes tarefas.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-criar-um-swarm-no-docker\">Como criar um swarm no Docker<\/h2><p class=\"wp-block-paragraph\">Para criar um Docker Swarm, primeiro &eacute; necess&aacute;rio inicializar uma m&aacute;quina como n&oacute; gerenciador e conectar as demais como n&oacute;s de trabalho. Depois, voc&ecirc; poder&aacute; implantar servi&ccedil;os no cluster e usar os comandos da CLI do Docker para executar tarefas como escalar servi&ccedil;os e aplicar atualiza&ccedil;&otilde;es graduais.<\/p><p class=\"wp-block-paragraph\">Siga as etapas abaixo para criar um Docker Swarm e gerenciar servi&ccedil;os em v&aacute;rias inst&acirc;ncias.<\/p><p class=\"wp-block-paragraph\">Como o procedimento envolve n&oacute;s gerenciadores e n&oacute;s de trabalho, <strong>preste aten&ccedil;&atilde;o em qual m&aacute;quina cada etapa deve ser executada<\/strong>. Algumas opera&ccedil;&otilde;es s&atilde;o realizadas apenas no n&oacute; gerenciador, enquanto outras devem ser executadas nos n&oacute;s de trabalho.<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>1. Instale o Docker em todas as inst&acirc;ncias<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> todos os n&oacute;s.<\/p><p class=\"wp-block-paragraph\">Como mencionado nos pr&eacute;-requisitos, o Docker j&aacute; vem pr&eacute;-instalado nos planos de hospedagem Docker da Hostinger. Caso utilize outro ambiente, ser&aacute; necess&aacute;rio <a data-click-id=\"hgr-post-content-link-instalar-o-docker\" href=\"\/pt\/tutoriais\/instalar-docker-ubuntu\/\">instalar o Docker<\/a> em todos os n&oacute;s antes de configurar o swarm.<\/p><p class=\"wp-block-paragraph\">Ap&oacute;s a instala&ccedil;&atilde;o, confirme se o Docker est&aacute; instalado corretamente:<\/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 --version<\/pre><p class=\"wp-block-paragraph\">A sa&iacute;da deve ser semelhante a esta:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae31331\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae31331\" class=\"aligncenter size-large 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\/53\/2026\/10\/versao-da-instalacao-do-Docker-no-terminal.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a vers&atilde;o instalada do Docker\" class=\"wp-image-60215\"><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><\/div><p class=\"wp-block-paragraph\">Em seguida, verifique se o servi&ccedil;o do Docker est&aacute; em execu&ccedil;&atilde;o:<\/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 systemctl status docker<\/pre><p class=\"wp-block-paragraph\">O status deve aparecer como <strong>active (running)<\/strong>, indicando que o daemon do Docker est&aacute; funcionando corretamente.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae33aaf\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae33aaf\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-ativo-em-execucao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando que o Docker est&aacute; ativo e em execu&ccedil;&atilde;o\" class=\"wp-image-60218\"><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><\/div><p class=\"wp-block-paragraph\">Para sair da tela de status, pressione <strong>Ctrl + C<\/strong>.<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>2. Inicialize o n&oacute; gerenciador do swarm<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">Depois de instalar o Docker em todos os n&oacute;s, acesse o <strong>n&oacute; gerenciador<\/strong>, onde voc&ecirc; vai criar o Docker Swarm. Primeiro, identifique o endere&ccedil;o IP dessa m&aacute;quina.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; utiliza um VPS da Hostinger, encontrar&aacute; o endere&ccedil;o IP na se&ccedil;&atilde;o <strong>Detalhes do VPS<\/strong>, na p&aacute;gina <strong>Vis&atilde;o geral<\/strong>, onde tamb&eacute;m &eacute; poss&iacute;vel alterar o nome de host, como mostramos anteriormente.<\/p><p class=\"wp-block-paragraph\">Com o endere&ccedil;o IP em m&atilde;os, execute o comando abaixo para inicializar o swarm. Substitua <strong>[IP do n&oacute; gerenciador]<\/strong> pelo endere&ccedil;o IP real do seu VPS:<\/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 swarm init --advertise-addr [IP do n&oacute; gerenciador]<\/pre><p class=\"wp-block-paragraph\">O comando retornar&aacute; uma sa&iacute;da semelhante a esta:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae361b2\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae361b2\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-swarm-join-token.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o comando gerado para adicionar n&oacute;s ao Docker Swarm\" class=\"wp-image-60217\"><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><\/div><p class=\"wp-block-paragraph\">Copie e salve o comando de conex&atilde;o, pois voc&ecirc; vai precisar dele para adicionar os n&oacute;s de trabalho ao swarm.<\/p><p class=\"wp-block-paragraph\">Para confirmar que o swarm foi inicializado corretamente, execute:<\/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 info<\/pre><p class=\"wp-block-paragraph\">O comando exibir&aacute; informa&ccedil;&otilde;es sobre o estado do swarm.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae38bc8\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae38bc8\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-swarm-ativo.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o estado do Docker Swarm\" class=\"wp-image-60219\"><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><\/div><p class=\"wp-block-paragraph\">Depois, consulte a lista de n&oacute;s do cluster:<\/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 node ls<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; ver&aacute; informa&ccedil;&otilde;es como ID do n&oacute;, nome de host, status, disponibilidade e fun&ccedil;&atilde;o.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae3bbad\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae3bbad\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-node.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a lista de n&oacute;s do Docker Swarm\" class=\"wp-image-60220\"><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><\/div><p>        <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                    Dica                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Se precisar adicionar novos n&oacute;s e n&atilde;o tiver mais o token de conex&atilde;o, execute o comando abaixo no <strong>n&oacute; gerenciador<\/strong> para exibi-lo novamente:<br>\n<strong>docker swarm join-token worker<\/strong><\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>3. Adicione os n&oacute;s de trabalho<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute;s worker1 e worker2.<\/p><p class=\"wp-block-paragraph\">Agora, acesse o n&oacute; <strong>worker1<\/strong> e execute o comando de conex&atilde;o que voc&ecirc; copiou do n&oacute; gerenciador:<\/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 swarm join --token [token de conex&atilde;o] [IP do n&oacute; gerenciador]:2377<\/pre><p class=\"wp-block-paragraph\">Se aparecer a mensagem <strong>&ldquo;This node joined a swarm as a worker&rdquo;<\/strong>, significa que o n&oacute; foi adicionado ao swarm corretamente.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae3e0b6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae3e0b6\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-no-que-entrou-no-swarm-como-trabalhador.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal confirmando que um n&oacute; de trabalho foi adicionado ao swarm\" class=\"wp-image-60221\"><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><\/div><p class=\"wp-block-paragraph\">Repita o procedimento no n&oacute; <strong>worker2<\/strong> e em qualquer outro n&oacute; que queira adicionar ao cluster.<\/p><p>        <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                    Dica                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Sempre que adicionar um novo n&oacute;, volte ao <strong>n&oacute; gerenciador<\/strong> e execute <strong>docker node ls<\/strong> para confirmar que ele entrou no swarm.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>4. Implante seu primeiro servi&ccedil;o<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">Volte ao <strong>n&oacute; gerenciador<\/strong> para implantar um servi&ccedil;o de teste chamado <strong>hello-world<\/strong>. Embora seja apenas um teste e voc&ecirc; v&aacute; remover o servi&ccedil;o na pr&oacute;xima etapa, esse exerc&iacute;cio ajuda a entender como funciona o gerenciamento de servi&ccedil;os no Docker Swarm.<\/p><p class=\"wp-block-paragraph\">Para criar o servi&ccedil;o <strong>hello-world<\/strong>, execute:<\/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 service create --replicas 1 --name hello-world alpine ping docker.com<\/pre><ul class=\"wp-block-list\">\n<li><strong>docker service create:<\/strong> inicia a cria&ccedil;&atilde;o do servi&ccedil;o no Docker Swarm.<\/li>\n\n\n\n<li><strong>&ndash;replicas 1:<\/strong> define o n&uacute;mero de r&eacute;plicas do servi&ccedil;o. Neste caso, ser&aacute; executada apenas <strong>1<\/strong> r&eacute;plica.<\/li>\n\n\n\n<li><strong>&ndash;name hello-world:<\/strong> define o nome do servi&ccedil;o como <strong>hello-world<\/strong>.<\/li>\n\n\n\n<li><strong>alpine ping docker.com:<\/strong> usa a imagem <strong>alpine<\/strong> para executar um ping em <strong>docker.com<\/strong> como teste simples.<\/li>\n<\/ul><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae403eb\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae403eb\" class=\"aligncenter size-large 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\/53\/2026\/10\/informacao-sobre-terminal-docker-service-converged.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a cria&ccedil;&atilde;o do servi&ccedil;o hello-world\" class=\"wp-image-60222\"><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><\/div><p class=\"wp-block-paragraph\">Depois, liste os servi&ccedil;os em execu&ccedil;&atilde;o no swarm:<\/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 service ls<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae4a48d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae4a48d\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-executando-servico.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando os servi&ccedil;os em execu&ccedil;&atilde;o no swarm\" class=\"wp-image-60223\"><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><\/div><h3 class=\"wp-block-heading h-t-title-3\"><strong>5. Inspecione e escale os servi&ccedil;os<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">Agora que o servi&ccedil;o de teste est&aacute; em execu&ccedil;&atilde;o, vamos inspecion&aacute;-lo e aumentar o n&uacute;mero de r&eacute;plicas no swarm.<\/p><p class=\"wp-block-paragraph\"><strong>Confira os detalhes do servi&ccedil;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para consultar os detalhes do servi&ccedil;o <strong>hello-world<\/strong>, execute:<\/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 service inspect --pretty hello-world<\/pre><p class=\"wp-block-paragraph\">O comando exibir&aacute; informa&ccedil;&otilde;es detalhadas sobre o servi&ccedil;o, incluindo ID, r&eacute;plicas e outras configura&ccedil;&otilde;es. A flag <strong>&ndash;pretty<\/strong> formata a sa&iacute;da para facilitar a leitura.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae4c560\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae4c560\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-inspect.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando os detalhes do servi&ccedil;o hello-world\" class=\"wp-image-60224\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Veja em quais n&oacute;s o servi&ccedil;o est&aacute; em execu&ccedil;&atilde;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para verificar em quais n&oacute;s o servi&ccedil;o est&aacute; sendo executado, use:<\/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 service ps hello-world<\/pre><p class=\"wp-block-paragraph\">O comando lista todas as tarefas associadas ao servi&ccedil;o <strong>hello-world<\/strong> e mostra em quais n&oacute;s elas est&atilde;o em execu&ccedil;&atilde;o.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae4e52d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae4e52d\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-manager-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o servi&ccedil;o hello-world em execu&ccedil;&atilde;o no n&oacute; gerenciador\" class=\"wp-image-60225\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Escale o servi&ccedil;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para escalar um servi&ccedil;o, basta alterar o n&uacute;mero de r&eacute;plicas. Por exemplo, para aumentar o n&uacute;mero de r&eacute;plicas do <strong>hello-world<\/strong> para tr&ecirc;s, execute:<\/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 service scale hello-world=3<\/pre><p class=\"wp-block-paragraph\">O Docker Swarm criar&aacute; r&eacute;plicas adicionais do servi&ccedil;o nos n&oacute;s dispon&iacute;veis.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae50365\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae50365\" class=\"aligncenter size-large 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\/53\/2026\/10\/informacao-sobre-terminal-docker-service-scale-converged.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o processo de escalonamento do servi&ccedil;o hello-world\" class=\"wp-image-60226\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Confira a distribui&ccedil;&atilde;o das tarefas ap&oacute;s o escalonamento<\/strong><\/p><p class=\"wp-block-paragraph\">Depois de escalar o servi&ccedil;o, verifique como as tarefas est&atilde;o distribu&iacute;das entre os n&oacute;s:<\/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 service ps hello-world<\/pre><p class=\"wp-block-paragraph\">Agora, voc&ecirc; dever&aacute; ver as tarefas distribu&iacute;das entre os tr&ecirc;s n&oacute;s, em vez de concentradas em apenas um, como no resultado anterior do mesmo comando.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae52388\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae52388\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-manager-worker1-worker2-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o servi&ccedil;o hello-world em execu&ccedil;&atilde;o nos n&oacute;s manager, worker1 e worker2\" class=\"wp-image-60227\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Remova o servi&ccedil;o<\/strong><\/p><p class=\"wp-block-paragraph\">Ap&oacute;s inspecionar e escalar o servi&ccedil;o, remova-o do swarm 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=\"\">docker service rm hello-world<\/pre><p class=\"wp-block-paragraph\">Esse comando exclui o servi&ccedil;o <strong>hello-world<\/strong> do swarm com seguran&ccedil;a.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae5415d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae5415d\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-remove.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a remo&ccedil;&atilde;o do servi&ccedil;o hello-world do swarm\" class=\"wp-image-60228\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Confirme a remo&ccedil;&atilde;o do servi&ccedil;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para verificar se o servi&ccedil;o foi removido, execute:<\/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 service ls<\/pre><p class=\"wp-block-paragraph\">Se a remo&ccedil;&atilde;o do <strong>hello-world<\/strong> tiver sido conclu&iacute;da corretamente, ele n&atilde;o aparecer&aacute; mais na lista.<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>6. Aplique atualiza&ccedil;&otilde;es graduais aos servi&ccedil;os<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">As atualiza&ccedil;&otilde;es graduais, tamb&eacute;m conhecidas como <em>rolling updates<\/em>, permitem atualizar os servi&ccedil;os gradualmente, ajudando a evitar per&iacute;odos de indisponibilidade. O Docker Swarm atualiza uma r&eacute;plica por vez e passa para a pr&oacute;xima ap&oacute;s concluir a atualiza&ccedil;&atilde;o anterior.<\/p><p class=\"wp-block-paragraph\">Primeiro, vamos implantar um servi&ccedil;o usando a vers&atilde;o <strong>7.4.0<\/strong> da imagem Docker do Redis. Depois, vamos atualiz&aacute;-lo para a vers&atilde;o <strong>7.4.1<\/strong> usando esse m&eacute;todo.<\/p><p class=\"wp-block-paragraph\"><strong>Implante um servi&ccedil;o Redis<\/strong><\/p><p class=\"wp-block-paragraph\">Comece criando um servi&ccedil;o com uma vers&atilde;o mais antiga da imagem Docker do Redis para atualiz&aacute;-la posteriormente:<\/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 service create --name redis --replicas 3 redis:7.4.0<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae64b39\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae64b39\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-create-converged-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o processo de cria&ccedil;&atilde;o do servi&ccedil;o Redis\" class=\"wp-image-60229\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Atualize o servi&ccedil;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para atualizar o servi&ccedil;o, execute o comando abaixo, especificando uma vers&atilde;o mais recente da imagem do Redis:<\/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 service update --image redis:7.4.1 redis<\/pre><p class=\"wp-block-paragraph\">O Docker Swarm substituir&aacute; gradualmente os cont&ecirc;ineres antigos pelos atualizados, ajudando a manter a disponibilidade do servi&ccedil;o durante o processo.<\/p><p class=\"wp-block-paragraph\"><strong>Confira se a vers&atilde;o foi atualizada<\/strong><\/p><p class=\"wp-block-paragraph\">Para verificar a vers&atilde;o do servi&ccedil;o e confirmar que a nova imagem est&aacute; sendo utilizada, execute:<\/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 service inspect --pretty redis<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae66b6b\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae66b6b\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-service-inspect-image-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a vers&atilde;o da imagem Docker utilizada pelo servi&ccedil;o Redis\" class=\"wp-image-60230\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Verifique em quais n&oacute;s o servi&ccedil;o est&aacute; em execu&ccedil;&atilde;o<\/strong><\/p><p class=\"wp-block-paragraph\">Para acompanhar a atualiza&ccedil;&atilde;o gradual e verificar quais cont&ecirc;ineres continuam em execu&ccedil;&atilde;o e quais est&atilde;o sendo substitu&iacute;dos, use:<\/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 service ps redis<\/pre><p class=\"wp-block-paragraph\">O comando exibir&aacute; uma lista das tarefas do servi&ccedil;o. As tarefas dos cont&ecirc;ineres atualizados aparecer&atilde;o com o estado desejado <strong>Running<\/strong>, enquanto as dos cont&ecirc;ineres antigos aparecer&atilde;o como <strong>Shutdown<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae68923\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae68923\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-servico-em-execucao-desligamento.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando os estados running e shutdown durante a atualiza&ccedil;&atilde;o do servi&ccedil;o Redis\" class=\"wp-image-60231\"><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><\/div><h3 class=\"wp-block-heading h-t-title-3\"><strong>7. Bloqueie o swarm<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">Ao ativar o bloqueio autom&aacute;tico do swarm, voc&ecirc; passa a precisar de uma chave para desbloquear o n&oacute; gerenciador ap&oacute;s a reinicializa&ccedil;&atilde;o do Docker. Esse recurso protege as chaves de criptografia do swarm e ajuda a impedir o acesso n&atilde;o autorizado a informa&ccedil;&otilde;es confidenciais do cluster.<\/p><p><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                N&atilde;o &eacute; necess&aacute;rio desbloquear o swarm apenas para adicionar um novo n&oacute;.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><strong>Ative o bloqueio autom&aacute;tico do swarm<\/strong><\/p><p class=\"wp-block-paragraph\">&Eacute; poss&iacute;vel ativar o bloqueio autom&aacute;tico durante a inicializa&ccedil;&atilde;o do swarm usando a flag <strong>&ndash;autolock<\/strong>, como neste exemplo:<\/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 swarm init --autolock --advertise-addr [IP do n&oacute; gerenciador]<\/pre><p class=\"wp-block-paragraph\">Como n&atilde;o ativamos esse recurso na inicializa&ccedil;&atilde;o, ainda podemos habilit&aacute;-lo no swarm existente 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=\"\">docker swarm update --autolock=true<\/pre><p class=\"wp-block-paragraph\">Com isso, o n&oacute; gerenciador ser&aacute; bloqueado automaticamente sempre que o servi&ccedil;o do Docker for reiniciado. O comando tamb&eacute;m gera uma chave para desbloque&aacute;-lo. Guarde essa chave em um local seguro.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae6a7cf\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae6a7cf\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-swarm-autolock-key-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a chave de desbloqueio do Docker Swarm\" class=\"wp-image-60232\"><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><\/div><p class=\"wp-block-paragraph\">Para desativar o bloqueio autom&aacute;tico, basta alterar o valor da flag <strong>&ndash;autolock<\/strong> de <strong>true<\/strong> para <strong>false<\/strong>.<\/p><p class=\"wp-block-paragraph\"><strong>Recupere a chave de desbloqueio<\/strong><\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; n&atilde;o salvou a chave ao ativar o bloqueio autom&aacute;tico, pode recuper&aacute;-la 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 swarm unlock-key<\/pre><p class=\"wp-block-paragraph\"><strong>Desbloqueie o swarm<\/strong><\/p><p class=\"wp-block-paragraph\">Se o bloqueio autom&aacute;tico estiver ativado, ser&aacute; necess&aacute;rio desbloquear o swarm ap&oacute;s reiniciar o servi&ccedil;o do Docker no n&oacute; gerenciador ou realizar uma manuten&ccedil;&atilde;o que envolva essa reinicializa&ccedil;&atilde;o. Para isso, execute:<\/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 swarm unlock<\/pre><p class=\"wp-block-paragraph\">O sistema solicitar&aacute; a chave de desbloqueio que voc&ecirc; salvou anteriormente.<\/p><p>        <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                    Dica                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Para proteger dados confidenciais, utilize os segredos de build do Docker. Embora esse recurso n&atilde;o proteja diretamente o swarm, ele ajuda a manter credenciais e informa&ccedil;&otilde;es sens&iacute;veis protegidas durante a cria&ccedil;&atilde;o das imagens e a execu&ccedil;&atilde;o dos cont&ecirc;ineres.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>8. Gerencie e fa&ccedil;a a manuten&ccedil;&atilde;o dos n&oacute;s<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute; gerenciador.<\/p><p class=\"wp-block-paragraph\">Gerenciar um swarm exige verificar regularmente a disponibilidade e a fun&ccedil;&atilde;o de cada n&oacute;. Isso ajuda a manter o cluster funcionando corretamente e a evitar interrup&ccedil;&otilde;es.<\/p><p class=\"wp-block-paragraph\"><strong>Inspecione um n&oacute; espec&iacute;fico<\/strong><\/p><p class=\"wp-block-paragraph\">Para consultar as informa&ccedil;&otilde;es de um n&oacute;, execute o comando abaixo, substituindo <strong>[nome do n&oacute;]<\/strong> pelo nome correspondente:<\/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 node inspect [nome do n&oacute;]<\/pre><p class=\"wp-block-paragraph\">O comando exibir&aacute; o status atual, a disponibilidade e as fun&ccedil;&otilde;es do n&oacute; no swarm.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae6d7a1\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae6d7a1\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-node-inspect-worker-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando os detalhes do n&oacute; worker1\" class=\"wp-image-60233\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Drene um n&oacute;<\/strong><\/p><p class=\"wp-block-paragraph\">Ao drenar um n&oacute;, voc&ecirc; impede que ele receba novas tarefas, permitindo realizar a manuten&ccedil;&atilde;o com seguran&ccedil;a e sem interromper o funcionamento do swarm:<\/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 node update --availability drain [nome do n&oacute;]<\/pre><p class=\"wp-block-paragraph\">Esse comando impede que novas tarefas sejam atribu&iacute;das ao n&oacute; e encerra as tarefas existentes, que s&atilde;o recriadas em outros n&oacute;s dispon&iacute;veis.<\/p><p class=\"wp-block-paragraph\"><strong>Pause um n&oacute;<\/strong><\/p><p class=\"wp-block-paragraph\">Pausar um n&oacute; impede que novas tarefas sejam agendadas nele, mas permite que as tarefas existentes continuem em execu&ccedil;&atilde;o. Para isso, use:<\/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 node update --availability pause [nome do n&oacute;]<\/pre><p class=\"wp-block-paragraph\">Essa op&ccedil;&atilde;o &eacute; &uacute;til quando voc&ecirc; precisa interromper temporariamente a atribui&ccedil;&atilde;o de novas tarefas a um n&oacute; sem afetar as opera&ccedil;&otilde;es em andamento.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae6f9f7\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae6f9f7\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-disponibilidade-drenagem-pausa.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando n&oacute;s com disponibilidade definida como drain e pause\" class=\"wp-image-60234\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Restaure um n&oacute; drenado ou pausado<\/strong><\/p><p class=\"wp-block-paragraph\">Ap&oacute;s concluir a manuten&ccedil;&atilde;o, restaure o funcionamento normal do n&oacute; alterando sua disponibilidade de <strong>drain<\/strong> ou <strong>pause<\/strong> para <strong>active<\/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 node update --availability active [nome do n&oacute;]<\/pre><p class=\"wp-block-paragraph\"><strong>Promova um n&oacute; a gerenciador<\/strong><\/p><p class=\"wp-block-paragraph\">Para permitir que um n&oacute; gerencie o swarm, promova-o &agrave; fun&ccedil;&atilde;o de gerenciador com este 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=\"\">docker node promote [nome do n&oacute;]<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae719e7\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae719e7\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-node-promote-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a promo&ccedil;&atilde;o do n&oacute; worker1 a gerenciador\" class=\"wp-image-60236\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Rebaixe um n&oacute; gerenciador a n&oacute; de trabalho<\/strong><\/p><p class=\"wp-block-paragraph\">Em alguns casos, pode ser necess&aacute;rio rebaixar um n&oacute; gerenciador &agrave; fun&ccedil;&atilde;o de n&oacute; de trabalho, seja por uma reorganiza&ccedil;&atilde;o do cluster ou para realizar manuten&ccedil;&atilde;o. Nesse caso, execute:<\/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 node demote [nome do n&oacute;]<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae73d86\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae73d86\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-node-demote-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando o rebaixamento de um n&oacute; gerenciador &agrave; fun&ccedil;&atilde;o de n&oacute; de trabalho\" class=\"wp-image-60235\"><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><\/div><p>        <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                    Dica                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Em vez de gerenciar cada n&oacute; separadamente, voc&ecirc; pode alterar a fun&ccedil;&atilde;o de v&aacute;rios n&oacute;s com um &uacute;nico comando. Por exemplo, para promover os n&oacute;s <strong>worker1<\/strong> e <strong>worker2<\/strong> &agrave; fun&ccedil;&atilde;o de gerenciadores, execute:<br>\n<strong>docker node promote worker1 worker2<\/strong><\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h3 class=\"wp-block-heading h-t-title-3\"><strong>9. Remova os n&oacute;s e exclua o swarm<\/strong><\/h3><p class=\"wp-block-paragraph\"><strong>Execute em:<\/strong> n&oacute;s worker1, worker2 e manager.<\/p><p class=\"wp-block-paragraph\">Por fim, voc&ecirc; pode remover n&oacute;s do swarm e at&eacute; excluir o cluster inteiro, se necess&aacute;rio.<\/p><p class=\"wp-block-paragraph\"><strong>Remova um n&oacute; de trabalho do swarm<\/strong><\/p><p class=\"wp-block-paragraph\">No n&oacute; <strong>worker1<\/strong>, execute o comando abaixo para que ele saia do swarm com seguran&ccedil;a:<\/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 swarm leave<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae7c320\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae7c320\" class=\"aligncenter size-large 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\/53\/2026\/10\/terminal-docker-swarm-sair-do-worker.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando que o n&oacute; worker1 saiu do swarm\" class=\"wp-image-60237\"><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><\/div><p class=\"wp-block-paragraph\">Repita o procedimento nos demais n&oacute;s que deseja remover do swarm.<\/p><p class=\"wp-block-paragraph\"><strong>Exclua os n&oacute;s que sa&iacute;ram do swarm<\/strong><\/p><p class=\"wp-block-paragraph\">Depois que um n&oacute; de trabalho sair do swarm, acesse o <strong>n&oacute; gerenciador<\/strong> e remova-o da lista de n&oacute;s:<\/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 node rm [nome do n&oacute;]<\/pre><p class=\"wp-block-paragraph\">Com isso, o n&oacute; deixa de fazer parte da lista de n&oacute;s do Docker Swarm. Voc&ecirc; tamb&eacute;m pode remover v&aacute;rios n&oacute;s de uma s&oacute; vez, informando seus nomes no mesmo 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=\"\">docker node rm [nome do n&oacute; 1] [nome do n&oacute; 2]<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ae18eae7e47b\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ae18eae7e47b\" class=\"aligncenter size-large 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\/53\/2026\/10\/imagem-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"Sa&iacute;da do terminal mostrando a remo&ccedil;&atilde;o dos n&oacute;s worker1 e worker2 da lista de n&oacute;s\" class=\"wp-image-60238\"><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><\/div><p class=\"wp-block-paragraph\"><strong>Exclua o swarm<\/strong><\/p><p class=\"wp-block-paragraph\">N&atilde;o existe um comando espec&iacute;fico para excluir completamente um swarm. No entanto, voc&ecirc; pode desativ&aacute;-lo fazendo com que o &uacute;ltimo n&oacute; gerenciador saia do cluster:<\/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 swarm leave --force<\/pre><p class=\"wp-block-paragraph\">Antes de executar o comando, confirme que esse &eacute; o &uacute;ltimo n&oacute; do swarm. Se ainda houver outros n&oacute;s gerenciadores, o cluster continuar&aacute; existindo.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-conclusao\">Conclus&atilde;o<\/h2><p class=\"wp-block-paragraph\">O Docker Swarm facilita a implanta&ccedil;&atilde;o, o escalonamento e a atualiza&ccedil;&atilde;o de aplica&ccedil;&otilde;es em cont&ecirc;ineres distribu&iacute;dos por v&aacute;rias m&aacute;quinas, al&eacute;m de ajudar a manter a infraestrutura dispon&iacute;vel e resiliente.<\/p><p class=\"wp-block-paragraph\">Neste tutorial, mostramos como criar e gerenciar um Docker Swarm do zero:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Prepare as inst&acirc;ncias VPS e instale o Docker em cada uma delas.<\/li>\n\n\n\n<li>Inicialize o n&oacute; gerenciador do swarm.<\/li>\n\n\n\n<li>Adicione os n&oacute;s de trabalho ao cluster.<\/li>\n\n\n\n<li>Implante um servi&ccedil;o de teste para conhecer os recursos de gerenciamento de servi&ccedil;os.<\/li>\n\n\n\n<li>Inspecione e escale o servi&ccedil;o para entender a distribui&ccedil;&atilde;o das tarefas.<\/li>\n\n\n\n<li>Aplique atualiza&ccedil;&otilde;es graduais para ajudar a evitar per&iacute;odos de indisponibilidade.<\/li>\n\n\n\n<li>Bloqueie o swarm para aumentar a seguran&ccedil;a.<\/li>\n\n\n\n<li>Gerencie e fa&ccedil;a a manuten&ccedil;&atilde;o dos n&oacute;s.<\/li>\n\n\n\n<li>Remova os n&oacute;s e exclua o swarm.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">Como pr&oacute;ximo passo, experimente implantar uma aplica&ccedil;&atilde;o real no seu swarm, configurar o <a data-click-id=\"hgr-post-content-link-nginx-como-proxy-reverso\" href=\"\/pt\/tutoriais\/proxy-reverso-nginx\/\">NGINX como proxy reverso<\/a> para gerenciar o tr&aacute;fego ou explorar as stacks do Docker para criar uma infraestrutura mais escal&aacute;vel e f&aacute;cil de manter.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-perguntas-frequentes-faq-sobre-como-criar-um-docker-swarm\">Perguntas frequentes (FAQ) sobre como criar um Docker Swarm<\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1793158839893\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">u003cstrongu003eO que &eacute; o Docker Swarm?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>O Docker Swarm &eacute; uma ferramenta nativa de clusteriza&ccedil;&atilde;o e orquestra&ccedil;&atilde;o que permite gerenciar v&aacute;rias inst&acirc;ncias do Docker Engine como um &uacute;nico sistema virtual. Com ele, &eacute; poss&iacute;vel implantar, escalar e manter aplica&ccedil;&otilde;es em cont&ecirc;ineres com alta disponibilidade e balanceamento de carga integrado entre v&aacute;rios n&oacute;s.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1793158841098\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">u003cstrongu003eComo adicionar n&oacute;s a um Docker Swarm?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Para adicionar um n&oacute;, primeiro gere um token de conex&atilde;o no n&oacute; gerenciador usando o comando u003cstrongu003edocker swarm join-token workeru003c\/strongu003e. Depois, execute o comando de conex&atilde;o no novo n&oacute; para integr&aacute;-lo ao swarm. O n&oacute; ser&aacute; adicionado automaticamente ao cluster.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1793158841595\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">u003cstrongu003ePosso criar um Docker Swarm com v&aacute;rios hosts?u003c\/strongu003e<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Sim. O Docker Swarm foi desenvolvido para ambientes com v&aacute;rios hosts. Voc&ecirc; pode criar um swarm usando m&aacute;quinas de diferentes hosts ou provedores de nuvem. Depois de conectadas, essas m&aacute;quinas funcionam como um &uacute;nico cluster, permitindo executar servi&ccedil;os em v&aacute;rios hosts com distribui&ccedil;&atilde;o integrada de servi&ccedil;os.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>O Docker Swarm &eacute; uma ferramenta de orquestra&ccedil;&atilde;o de cont&ecirc;ineres que permite gerenciar v&aacute;rias inst&acirc;ncias do Docker Engine como um &uacute;nico sistema. Com ele, &eacute; poss&iacute;vel implantar e gerenciar aplica&ccedil;&otilde;es em cont&ecirc;ineres distribu&iacute;dos entre diferentes m&aacute;quinas. Dessa forma, a aplica&ccedil;&atilde;o continua funcionando mesmo que uma delas apresente falhas ou fique offline. Neste artigo, voc&ecirc; vai [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/criar-docker-swarm\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":52021,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Docker Swarm: como criar e configurar um cluster","rank_math_description":"Aprenda a criar um Docker Swarm, conectar n\u00f3s, implantar e escalar servi\u00e7os, aplicar atualiza\u00e7\u00f5es e gerenciar seu cluster com comandos pr\u00e1ticos.","rank_math_focus_keyword":"docker swarm","footnotes":""},"categories":[7708],"tags":[],"class_list":["post-52020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/criar-docker-swarm\/","default":1},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-docker-swarm\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/52020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=52020"}],"version-history":[{"count":0,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/52020\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media\/52021"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=52020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=52020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=52020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}