Docker Swarm · 8 min read · Oct 05, 2025

Como Instalar Docker Swarm no Ubuntu 22.04

Docker Swarm é uma orquestração de contêineres construída sobre o Docker Engine. Ele permite que você crie e implante um cluster de nós Docker em vários servidores. O Docker Swarm simplifica a implantação de suas aplicações em contêineres em um serviço. Ele fornece uma maneira simples e fácil de gerenciar e orquestrar contêineres.

O Docker Swarm oferece um alto nível de aplicações disponíveis. No Docker Swarm, você pode executar uma única aplicação ou serviço em vários nós, que são chamados de ‘Nó de Trabalho’. E também há um nó chamado ‘Gerente de Swarm’, que é o gerenciamento central e a orquestração do Docker Swarm.

Neste tutorial, vamos mostrar como instalar o software Docker Swarm em servidores Ubuntu 22.04 passo a passo.

Pré-requisitos

Para completar este guia, certifique-se de que você possui o seguinte:

  • 3 servidores Ubuntu 22.04 - Um será usado como Mestre/Gerente de Swarm, e dois servidores serão usados como Nós de Trabalho.
  • Um usuário não-root com privilégios de administrador sudo.

Configurando Sistemas

Antes de instalar o Docker e configurar o Docker Swarm, você deve preparar seus sistemas completando as seguintes tarefas:

  • Abrir Portas para Docker Swarm: Você deve abrir algumas portas que são usadas pelo Docker Swarm em todos os seus servidores. Isso pode ser feito via UFW (Firewall Descomplicado).
  • Adicionar Repositório do Docker: Você usará o repositório oficial do Docker para instalar o Docker Engine em todos os seus servidores.

Abrir Portas para Docker Swarm

Na seção a seguir, você abrirá a porta 22 para SSH, depois as portas 2377, 7946 e 4789 para Docker Swarm via UFW (Firewall Descomplicado) no Mestre/Gerente de Swarm e nos Nós de Swarm. O UFW é instalado por padrão, mas ainda não foi iniciado.

Primeiro, execute o comando ufw abaixo para adicionar o perfil de aplicação OpenSSH e abrir a porta SSH padrão 22. Em seguida, inicie e habilite o UFW.

sudo ufw allow OpenSSH  
sudo ufw enable

Digite y para prosseguir, e você deve obter a saída Firewall está ativo e habilitado na inicialização do sistema.

enable ufw

Agora execute o comando abaixo para abrir as portas que serão usadas pelos serviços na sua implantação do Swarm. Neste caso, você alocará portas entre 30000:35000 para serviços.

sudo ufw allow 30000:35000/tcp

Em seguida, execute o seguinte comando para abrir as portas para Docker Swarm.

for ports in 2377/tcp 7946/tcp 7946/udp 4789/udp  
do  
sudo ufw allow $ports  
done

setup ufw

Por fim, recarregue o UFW e verifique o status do UFW executando o comando abaixo.

sudo ufw reload  
sudo ufw status

Você deve ver o perfil de aplicação OpenSSH e as portas para Docker Swarm, incluindo 2377, 7946 e 4789 habilitadas no UFW.

verify ufw

Adicionando Repositório do Docker

Após configurar o UFW, você deve adicionar o repositório oficial do Docker aos seus servidores. Você usará o repositório oficial do Docker para instalar o Docker Engine.

Execute o comando abaixo para instalar alguns pacotes básicos em seus servidores Ubuntu.

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

install basic deps

Em seguida, execute o comando abaixo para adicionar a chave GPG do Docker e o repositório aos seus sistemas.

sudo install -m 0755 -d /etc/apt/keyrings  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg  
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \  
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \  
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \  
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Por fim, atualize e atualize seu repositório Ubuntu em cada servidor executando o comando abaixo.

sudo apt update

Você deve ver o repositório Docker sendo buscado durante o processo.

update repo

Instalando Docker Engine

Após preparar seus sistemas Ubuntu, você instalará o Docker Engine nesses servidores.

Instale o Docker Engine em seus sistemas Ubuntu usando o comando abaixo. Digite y para confirmar a instalação.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

install docker

Uma vez que a instalação esteja concluída, execute o comando systemctl abaixo para verificar o serviço docker e garantir que o serviço esteja em execução.

sudo systemctl is-enabled docker  
sudo systemctl status docker

Na saída a seguir, você deve ver que o serviço docker está em execução e habilitado.

check docker service

(Opcional): Permitir que Usuários Não-Root Executem Contêineres Docker

Se você estiver implantando o Docker Swarm e executando contêineres usando um usuário não-root, você deve adicionar seu usuário ao grupo docker para que o usuário possa executar o comando docker e rodar contêineres.

Execute o comando usermod abaixo para adicionar seu usuário atual ao grupo docker.

sudo usermod -aG docker nome_de_usuario

Agora faça login como um usuário não-root e execute o comando docker abaixo para verificar sua configuração.

su - nome_de_usuario  
docker run hello-world

Se a configuração for bem-sucedida, você deverá conseguir executar o contêiner hello-world e obter a seguinte saída:

docker hello-world

Criando Docker Swarm

Agora que você instalou o Docker Engine, está pronto para criar e iniciar o Docker usando seus servidores Ubuntu. Neste exemplo, usaremos um servidor como Mestre/Gerente de Swarm e dois servidores como Nós de Trabalho.

Complete as seguintes tarefas para configurar o Docker Swarm:

  • Inicializando o modo Swarm no Mestre/Gerente.
  • Adicionando Nós de Trabalho ao Docker Swarm.

Vamos começar.

Inicializando o Modo Swarm no Mestre/Gerente

Para inicializar o Docker Swarm, execute o comando docker swarm init abaixo. O parâmetro adicional –advertise-addr irá vincular o Docker Swarm ao endereço IP específico, e o parâmetro –default-addr-pool determina o endereço IP interno para contêineres que estão em execução no Swarm.

Neste exemplo, o modo Docker Swarm será vinculado ao endereço IP 192.168.5.30 e o pool de endereços IP para contêineres é 10.20.0.0/16.

docker swarm init --advertise-addr 192.168.5.30 --default-addr-pool 10.20.0.0/16

Se o processo de inicialização for bem-sucedido, a seguinte saída será exibida. Dentro da saída, você deve ver o token gerado para adicionar Nós ao Docker Swarm.

Em seguida, execute o seguinte comando para verificar o status do modo Swarm.

docker info

Se o modo Swarm estiver habilitado, você deve obter a saída Swarm: active com detalhes de NodeID e o status de Gerente e Nó.

check swarm mode

Por fim, execute o comando abaixo para verificar a lista de Nós no Docker Swarm.

docker node ls

Neste ponto, apenas um Nó está disponível no seu Docker Swarm, que é o Mestre/Gerente de Swarm.

Adicionando Nós de Trabalho ao Docker Swarm

Com o Docker Swarm inicializado, você pode adicionar nós de trabalho ao seu Docker Swarm.

Primeiro, execute o comando abaixo para mostrar o token gerado para o nó de trabalho.

docker swarm join-token worker

Você deve ver instruções para adicionar nós de trabalho, que incluem o token.

Agora, vá para o nó de trabalho e adicione o nó de trabalho ao Docker Swarm executando o comando docker swarm join abaixo.

docker swarm join --token SWMTKN-1-0i6kbe2oek1iw19jfpvd2j5l0dhfmssz4w505aeihx7ouz8wqc-2dbk7cnmo12uunj53eywwnqr7 192.168.5.30:2377

Quando o processo for bem-sucedido, a saída ‘Este nó juntou-se a um swarm como um trabalhador’ será impressa na sua tela.

Em seguida, volte para o Mestre/Gerente de Swarm e execute o comando abaixo para verificar a lista de nós disponíveis.

docker node ls

Se tudo correr bem, haverá três servidores disponíveis no Docker Swarm, 1 o Gerente de Swarm e 2 nós de trabalho com o status Pronto e a disponibilidade em execução.

Executando Serviço no Docker Swarm

Neste ponto, você criou com sucesso o Docker Swarm com três servidores Ubuntu. Agora, você aprenderá como implantar sua aplicação no Docker Swarm, que é chamada de serviço. Um serviço é uma imagem da sua aplicação de microsserviço, e pode ser um servidor HTTP, servidor de banco de dados ou outras aplicações.

Neste exemplo, você implantará um serviço HTTP simples com uma imagem Nginx.

Execute o comando abaixo para criar um novo serviço no seu Swarm. Neste exemplo, você criará um novo serviço test-nginx com 1 réplica, exporá a porta 30001 e baseará na imagem nginx:alpine.

docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine

Agora, verifique os detalhes do serviço test-nginx usando o comando abaixo.

docker service inspect test-nginx  
docker service inspect --pretty test-nginx

Você deve ver informações detalhadas sobre o serviço test-nginx como a seguinte.

check service

Em seguida, verifique a lista de serviços Docker dentro do Docker Swarm usando o comando abaixo.

docker service ls  
docker service ps test-nginx

Se for bem-sucedido, você deve ver o serviço test-nginx em execução no nó gerente com 1 réplica e a porta exposta 30001.

check service detail

Por fim, acesse o serviço test-nginx pelo endereço IP do host com a porta 30001 usando o comando curl abaixo.

curl 192.168.5.30:30001  
curl -I 192.168.5.30:30001

Você deve ver o código fonte da página index.html e os detalhes dos cabeçalhos HTTP.

check nginx service

Escalando Serviço no Docker Swarm

Agora que você implantou o serviço Docker, a próxima tarefa é escalar o serviço no Docker Swarm. Isso criará a replicação desejada dos seus serviços entre os nós de trabalho.

Para escalar um serviço, execute o comando docker service scale abaixo. Neste caso, você escalará o serviço test-nginx para 3 réplicas.

docker service scale test-nginx=3

scale service

Agora execute o comando abaixo para verificar o serviço test-nginx. Se o serviço test-nginx foi escalado, você deve ver mais dois serviços criados pelo Docker e em execução em ambos os nós de trabalho.

docker service ps test-nginx

Vá para o terminal do nó de trabalho e execute o seguinte comando para garantir que o serviço test-nginx esteja em execução.

docker ps  
curl 192.168.5.31:30001

Se tudo correr bem, você deve ver o contêiner test-nginx.RANDOM-STRING com status Em execução em cada um dos nós de trabalho.

check service worker1

check service worker2

Deletando Serviço no Docker Swarm

Para limpar seu ambiente, você irá deletar o serviço test-nginx do Docker Swarm e remover a imagem docker nginx:alpine.

Delete o serviço test-nginx e verifique a lista de serviços disponíveis no Docker Swarm usando o seguinte comando.

docker service rm test-nginx  
docker service ps

Agora remova a imagem nginx:alpine e verifique a lista de imagens baixadas para cada servidor usando o comando abaixo.

docker rmi nginx:alpine  
docker images

Conclusão

Para finalizar, você agora instalou com sucesso o Docker Swarm no Ubuntu 22.04 passo a passo. Você implantou o Docker Swarm com três servidores Ubuntu e aprendeu como implantar, escalar e remover aplicações ou serviços no Docker Swarm.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.