Les conteneurs Docker sont isolés du système hôte. Par défaut, les applications qu'ils contiennent ne sont pas accessibles depuis votre navigateur ou votre réseau
Pour rendre un service accessible, vous avez besoin de déclarer/publier un port
Prenons l'exemple suivant :
docker run -p 8080:80 nginx
Le premier nombre 8080 corresponds au port de votre machine, et le second correspond au port utilisé par le conteneur 80
Par exemple :

Il est possible de choisir pratiquement n'importe quel port côté machine hôte.
Par exemple 3000:80, 8080:80, 8888:80, 12345:80 etc.
Tous ces exemples permettraient d'accéder au même serveur web, mais avec un port différent
Pourquoi est-ce utile ?
C'est utile, car ça permet notamment d'exécuter plusieurs services web sur la même machine, d'éviter les conflits entre application ou d'organiser plus facilement ses services.
C'est pour cette raison qu'il est fréquent de rencontrer des applications Docker accessibles sur des ports comme 3000, 3001, 8080, 9443, 5000 etc.