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 enableDigite y para prosseguir, e você deve obter a saída Firewall está ativo e habilitado na inicialização do sistema.

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/tcpEm 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
Por fim, recarregue o UFW e verifique o status do UFW executando o comando abaixo.
sudo ufw reload
sudo ufw statusVocê deve ver o perfil de aplicação OpenSSH e as portas para Docker Swarm, incluindo 2377, 7946 e 4789 habilitadas no 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
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.gpgecho \
"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/nullPor fim, atualize e atualize seu repositório Ubuntu em cada servidor executando o comando abaixo.
sudo apt updateVocê deve ver o repositório Docker sendo buscado durante o processo.

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
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 dockerNa saída a seguir, você deve ver que o serviço docker está em execução e habilitado.

(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_usuarioAgora 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-worldSe a configuração for bem-sucedida, você deverá conseguir executar o contêiner hello-world e obter a seguinte saída:

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/16Se 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 infoSe o modo Swarm estiver habilitado, você deve obter a saída Swarm: active com detalhes de NodeID e o status de Gerente e Nó.

Por fim, execute o comando abaixo para verificar a lista de Nós no Docker Swarm.
docker node lsNeste 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 workerVocê 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:2377Quando 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 lsSe 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:alpineAgora, verifique os detalhes do serviço test-nginx usando o comando abaixo.
docker service inspect test-nginx
docker service inspect --pretty test-nginxVocê deve ver informações detalhadas sobre o serviço test-nginx como a seguinte.

Em seguida, verifique a lista de serviços Docker dentro do Docker Swarm usando o comando abaixo.
docker service ls
docker service ps test-nginxSe 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.

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:30001Você deve ver o código fonte da página index.html e os detalhes dos cabeçalhos HTTP.

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
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-nginxVá 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:30001Se 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.


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 psAgora remova a imagem nginx:alpine e verifique a lista de imagens baixadas para cada servidor usando o comando abaixo.
docker rmi nginx:alpine
docker imagesConclusã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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.