Posso docker run -p 3000:3000 image sem EXPOSE essa porta no contêiner (veja abaixo). Se isso for verdade, por que se preocupar em colocar EXPOSE no Dockerfile? É apenas para comunicação com usuários de imagem? Porque eu não conheço um motivo funcional para EXPOSE as portas se todas elas forem...
23
Por que usar EXPOSE no Dockerfile - já que você pode vincular a todas as portas de qualquer maneira