-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

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: