Docker permette di mappare le porte tra il container e l’host (il tuo computer o server), in modo che gli utenti possano accedere ai servizi eseguiti all’interno del container. Per fare questo, è possibile utilizzare l’opzione `-p` (o `—publish`) al momento dell’esecuzione del comando `docker run`.
Ad esempio, supponiamo che tu abbia un’applicazione web in esecuzione nel tuo container sulla porta 5000 e vuoi che sia accessibile dall’host sulla porta 8080. Il comando sarebbe:
```
docker run -p 8080:5000 nome_immagine
```
Dove `-p 8080:5000` indica a Docker di mappare la porta 5000 nel container alla porta 8080 sull’host.
Si può anche mappare più porte nello stesso comando:
```
docker run -p 8080:5000 -p 8081:5001 nome_immagine
```
Nota: se si esegue Docker in un ambiente cloud o in una VPS, potrebbe essere necessario configurare il firewall per permettere il traffico nelle porte mappate.
Se si desidera mappare le porte in un Dockerfile durante la creazione di un’immagine Docker, si può usare l’istruzione EXPOSE come questa:
```
EXPOSE 5000
```
Tuttavia, EXPOSE non mappa effettivamente la porta, ma serve più come una documentazione per indicare quali porte l’applicazione all’interno del container ascolterà. Devi ancora usare l’opzione `-p` quando esegui il container per mappare effettivamente la porta.