Como usar o comando docker swarm init para inicializar um swarm

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como inicializar um Docker Swarm usando o comando docker swarm init. Começará inicializando um swarm básico para entender o processo fundamental.

Construindo sobre a inicialização básica, você explorará cenários mais avançados. Isso inclui inicializar um swarm com um endereço de anúncio específico para controlar a comunicação de rede, habilitar o autolock para maior segurança e configurar uma porta de caminho de dados (data path) personalizada. Através dessas etapas, você obterá experiência prática na configuração e personalização de um ambiente Docker Swarm.

Inicializar um swarm básico

Nesta etapa, você aprenderá como inicializar um Docker Swarm básico. Docker Swarm é uma solução nativa de clustering e orquestração para Docker. Ele permite que você crie e gerencie um cluster de nós Docker.

Antes de inicializar o swarm, vamos verificar o status atual do Docker.

docker info

Você deve ver informações sobre sua instalação do Docker. Procure a seção "Swarm". Ela deve indicar que o Swarm está inativo.

Para inicializar um swarm básico, você usará o comando docker swarm init. Este comando transforma o host Docker atual em um manager do swarm.

docker swarm init

Após executar o comando, você verá uma saída indicando que o swarm foi inicializado e fornecendo um comando para ingressar outros nós no swarm como workers.

Vamos verificar se o swarm foi inicializado com sucesso.

docker info

Agora, a seção "Swarm" deve mostrar que o Swarm está ativo e indicar que o nó atual é um manager.

Você também pode usar o comando docker node ls para listar os nós no swarm.

docker node ls

Você deve ver o nó atual listado com o status "Ready" (Pronto) e a função "Manager".

Inicializar um swarm com um endereço de anúncio específico

Na etapa anterior, você inicializou um Docker Swarm básico. Nesta etapa, você aprenderá como inicializar um swarm e especificar o endereço que o manager do swarm anunciará para outros nós. Isso é útil em ambientes com múltiplas interfaces de rede ou quando você deseja controlar qual endereço é usado para a comunicação do swarm.

Primeiro, você precisa sair do swarm existente. Você pode fazer isso usando o comando docker swarm leave. Como este é o único nó e é um manager, você precisa usar a flag --force.

docker swarm leave --force

Você deve ver uma saída confirmando que o nó saiu do swarm.

Agora, vamos encontrar o endereço IP da sua máquina atual. Você pode usar o comando ip addr show e procurar o endereço IP associado à sua interface de rede (comumente eth0 ou ens*).

ip addr show

Identifique o endereço IP que você deseja usar para o endereço de anúncio do swarm. Por exemplo, se seu endereço IP for 172.17.0.2, você usará esse.

Agora, inicialize o swarm novamente, mas desta vez especifique o endereço de anúncio usando a flag --advertise-addr. Substitua <YOUR_IP_ADDRESS> pelo endereço IP real que você encontrou.

docker swarm init --advertise-addr <YOUR_IP_ADDRESS>

Você verá uma saída semelhante à inicialização básica, mas o comando de ingresso agora incluirá o endereço de anúncio especificado.

Para verificar se o swarm foi inicializado com o endereço de anúncio correto, você pode inspecionar o swarm.

docker swarm inspect --pretty

Procure o campo AdvertiseAddr na saída. Ele deve corresponder ao endereço IP que você especificou.

Inicializar um swarm com autolock ativado

Nesta etapa, você aprenderá como inicializar um Docker Swarm com o recurso autolock ativado. O autolock ajuda a proteger o swarm contra acesso não autorizado, exigindo uma chave de descriptografia para desbloquear o swarm após uma reinicialização do daemon Docker.

Primeiro, saia do swarm existente como você fez na etapa anterior.

docker swarm leave --force

Agora, inicialize o swarm com a flag --autolock. Você também pode incluir a flag --advertise-addr novamente se quiser especificar o endereço de anúncio. Substitua <YOUR_IP_ADDRESS> pelo endereço IP da sua máquina.

docker swarm init --autolock --advertise-addr <YOUR_IP_ADDRESS>

Ao inicializar o swarm com --autolock, a saída incluirá uma "Swarm auto-lock key" (Chave de auto-bloqueio do Swarm). É crucial salvar esta chave em um local seguro. Você precisará dela para desbloquear o swarm após uma reinicialização do daemon Docker.

Para verificar se o autolock está ativado, você pode inspecionar o swarm.

docker swarm inspect --pretty

Procure o campo AutoLockManagers na saída. Ele deve estar definido como true.

Observe que, como este é um swarm de nó único em um ambiente de laboratório, você não experimentará o efeito total do autolock exigindo uma chave após uma reinicialização do daemon. No entanto, esta etapa demonstra como ativar o recurso.

Inicializar um swarm com uma porta de caminho de dados personalizada

Nesta etapa, você aprenderá como inicializar um Docker Swarm e especificar uma porta personalizada para a rede de caminho de dados. A rede de caminho de dados é usada para comunicação entre nós do swarm para tarefas como descoberta de serviços e balanceamento de carga. Por padrão, isso usa a porta 4789. Você pode precisar alterar esta porta se ela entrar em conflito com outros serviços em sua rede.

Primeiro, saia do swarm existente.

docker swarm leave --force

Agora, inicialize o swarm e especifique uma porta de caminho de dados personalizada usando a flag --data-path-port. Vamos usar a porta 5789 como exemplo. Você também pode incluir as flags --advertise-addr e --autolock se desejar. Substitua < YOUR_IP_ADDRESS > pelo endereço IP da sua máquina.

docker swarm init --data-path-port 5789 --advertise-addr < YOUR_IP_ADDRESS > --autolock

Você verá a saída da inicialização, incluindo a chave de autolock se você a habilitou.

Para verificar se a porta de caminho de dados personalizada está configurada, você pode inspecionar o swarm.

docker swarm inspect --pretty

Procure o campo DataPathPort na saída. Ele deve mostrar a porta personalizada que você especificou, que é 5789 neste exemplo.

Isso conclui as etapas sobre como inicializar um Docker Swarm com várias opções. Você aprendeu como inicializar um swarm básico, especificar um endereço de anúncio, habilitar o autolock e definir uma porta de caminho de dados personalizada.

Resumo

Neste laboratório, você aprendeu o processo fundamental de inicialização de um Docker Swarm. Você começou inicializando um swarm básico usando o comando docker swarm init, observando as mudanças em docker info e verificando a função de gerenciador com docker node ls.

Posteriormente, você explorou opções de inicialização mais avançadas. Você aprendeu como sair de um swarm existente usando docker swarm leave --force e, em seguida, reinicializar o swarm enquanto especificava um endereço de anúncio específico usando a flag --advertise-addr. Isso demonstrou como controlar a interface de rede usada para a comunicação do swarm.