Docker Comunicazione con esterno
Comunicazione con esterno attraverso NAT, ping verso un sito esterno
Accesso esterno con NAT
Passaggi, per eseguire un ping dal container verso l'IP 8.8.8.8 usando Docker con la rete di default `bridge`.
-
Crea e avvia un container
Puoi creare e avviare un container usando un'immagine di tua scelta (ad esempio, `alpine` per la sua leggerezza). - Esegui il comando `ping` all'interno del container
Passaggi dettagliati
Crea e avvia un container
docker run -it --rm alpine sh
- `docker run`: Avvia un nuovo container.
- `-it`: Interattivo con un terminale TTY.
- `--rm`: Rimuove il container quando viene terminato.
- `alpine`: L'immagine di Docker da usare (puoi sostituirla con qualsiasi altra immagine che preferisci).
- `sh`: Il comando da eseguire all'interno del container (in questo caso, una shell).
Installa il pacchetto `ping`
All'interno del container (se non è già presente): Una volta all'interno del container, puoi installare il pacchetto `iputils` (che include `ping`) se non è già presente.Per `alpine`, si puo' usare `apk` (il gestore di pacchetti di Alpine):
apk update && apk add iputils
Esegui il comando `ping`
Dopo aver installato `ping`, puoi eseguire il comando, che segue. Eseguirà 5 ping.
#eseguo 5 ping -c 5 al Ip 8.8.8.8
ping -c 5 8.8.8.8
#Per fermare il ping in Mac ^C
Esempio completo
# Avvia un container Alpine
docker run -it --rm alpine
# All'interno del container, aggiorna i repository e installa il pacchetto iputils
apk update && apk add iputils
# Esegui il ping verso 8.8.8.8
ping 8.8.8.8
Verifica del NAT
Docker configura automaticamente il NAT per i container che usano la rete di default `bridge`.Quando esegui il ping da un container, il traffico esce dal container attraverso il bridge `docker0`, viene mascherato (NAT) e inviato all'host del sistema operativo prima di essere instradato verso la destinazione esterna (8.8.8.8).
Per verificare che il traffico stia passando correttamente, puoi controllare le regole iptables sul tuo host Docker: