Ao criar seu serviço, você precisa usar a opção --publish
.
Por exemplo:
docker service create --detach=true --replicas 3 --publish 80:80 --name httpd httpd
Agora, a porta 80 é exposta à rede principal. De forma útil, o servidor todos no swarm publica a porta 80 e fará um redirecionamento interno para onde o container estiver sendo executado.
Da mesma forma, se você usar uma pilha, use a opção ports
. Por exemplo:
services:
web:
image: httpd
ports:
- 80:80