Containers possuem sua própria pilha de rede.
Subir Nginx:
docker run -d --name web nginx
Veja:
docker ps
O serviço existe, mas ainda não foi publicado diretamente para o host.
Publicar porta
Remova o container anterior:
docker rm -f web
Agora:
docker run -d \
--name web \
-p 8080:80 \
nginx
Formato:
HOST:CONTAINER
8080:80
Teste:
curl http://localhost:8080
Ou abra:
http://localhost:8080
Inspecionar portas
docker port web
Também:
docker ps
Laboratório
Crie:
docker run -d --name site1 -p 8081:80 nginx
docker run -d --name site2 -p 8082:80 nginx
docker run -d --name site3 -p 8083:80 nginx
Teste:
curl localhost:8081
curl localhost:8082
curl localhost:8083
Erro clássico
Tentar utilizar a mesma porta:
docker run -d --name outro -p 8081:80 nginx
Isso falhará porque a porta 8081 já está ocupada.
Investigue:
ss -lntp
