with-registry-auth
--with-registry-auth no Docker Swarm é a flag que faz o manager enviar as credenciais do registry para os nós do swarm, para que eles consigam dar pull em imagens privadas ao criar ou atualizar serviços. O Docker documenta isso explicitamente para docker service create em registries privados. (Docker Documentation)
Em termos simples
Sem essa flag:
- você faz
docker loginno manager - o manager conhece o registry
- mas os workers podem não conseguir baixar a imagem privada
- resultado comum: task falha com erro de pull / “no such image” / acesso negado
Com essa flag:
- o Swarm usa as credenciais autenticadas no manager
- repassa esse contexto de autenticação para os nós que vão executar as tasks
- os nós conseguem baixar a imagem privada do registry. (Docker Documentation)
Exemplo
docker login registry.example.com
docker service create \
--with-registry-auth \
--name minha-api \
registry.example.com/empresa/minha-api:1.0.0
Esse é exatamente o cenário descrito pela documentação oficial para imagem em private registry. (Docker Documentation)
No stack deploy
A ideia é a mesma quando você usa stack:
docker stack deploy \
--with-registry-auth \
-c docker-compose.yml minha-stack
A documentação do docker stack deploy lista a flag como: “Send registry authentication details to Swarm agents”. (Docker Documentation)
Quando usar
Use --with-registry-auth quando:
- a imagem está em registry privado
- você está usando Docker Hub privado, GHCR, GitLab Registry, ECR, ACR, Harbor, etc.
- o serviço pode rodar em qualquer nó do swarm e esse nó precisa autenticar para baixar a imagem
A própria documentação do Docker Hub diz que, em Docker Swarm, você deve usar --with-registry-auth para autenticar pulls no Hub. (Docker Documentation)
O que ele não faz
Ele não substitui o docker login.
O fluxo normal é:
- fazer
docker login - rodar
docker service create ... --with-registry-authoudocker stack deploy ... --with-registry-auth
O login autentica seu cliente no registry; a flag faz o Swarm aproveitar e propagar essas credenciais para os nós. (Docker Documentation)
Resumo curto
docker login= autentica no registry--with-registry-auth= faz o swarm usar e repassar essa autenticação aos nós para puxar a imagem privada
Se quiser, eu posso te mostrar exatamente onde isso entra no seu docker stack deploy da pipeline Azure/DO.