CodeGym /Corsi /Docker SELF /Creazione e gestione di reti

Creazione e gestione di reti

Docker SELF
Livello 17 , Lezione 1
Disponibile

2.1 Comandi principali di docker network

Le reti in Docker permettono ai container di interagire tra di loro e con le reti esterne. I comandi docker network offrono opzioni flessibili per creare, configurare e gestire reti, garantendo isolamento e controllo sulle interazioni di rete dei container. In questa lezione analizzeremo nel dettaglio i comandi docker network e il loro utilizzo per la gestione delle reti.

Comandi principali di docker network:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. docker network rm

Creazione di una rete: comando docker network create

Il comando docker network create viene utilizzato per creare nuove reti. Puoi creare reti con diversi driver, come bridge, host, overlay e macvlan.

Esempio di creazione di una rete con il driver bridge

Terminale


docker network create --driver bridge my_bridge_network 

Esempio di creazione di una rete con il driver overlay

Terminale


docker network create --driver overlay my_overlay_network 

Esempio di creazione di una rete con il driver macvlan

Terminale

docker network create --driver macvlan \
  --subnet=192.168.1.0/24   \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

2.2 Comandi per lavorare con le reti

1. Visualizzare le reti disponibili: comando docker network ls

Il comando docker network ls mostra l'elenco di tutte le reti create in Docker.

Terminale


docker network ls 

L'output del comando sarà simile al seguente:

Terminale


NETWORK ID          NAME                DRIVER              SCOPE
0e7e2d58fe94        bridge              bridge              local
9c84fdfc69ee        host                host                local
71cfb6a79d9e        none                null                local

2. Visualizzare le informazioni sulla rete: comando docker network inspect

Il comando docker network inspect permette di ottenere informazioni dettagliate su una rete specifica, inclusi i container collegati, la configurazione della subnet e del gateway.

Esempio di utilizzo:

Terminale


docker network inspect my_bridge_network 

L'output del comando conterrà informazioni sulla rete in formato JSON:

JSON

[
    {
        "Name": "my_bridge_network",
        "Id": "0e7e2d58fe94",
        "Created": "2021-01-01T00:00:00.000000000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "container_id": {
                "Name": "my_container",
                "EndpointID": "6c52f8c75c1e",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3. Collegare un container alla rete: comando docker network connect

Il comando docker network connect viene utilizzato per collegare un container già avviato a una rete esistente.

Esempio di utilizzo:

Terminale


docker network connect my_bridge_network my_container 

4. Disconnettere un container dalla rete: comando docker network disconnect

Il comando docker network disconnect viene utilizzato per disconnettere un container dalla rete.

Esempio di utilizzo:

Terminale


docker network disconnect my_bridge_network my_container 

5. Eliminare una rete: comando docker network rm

Il comando docker network rm viene utilizzato per eliminare una rete. Nota che una rete può essere eliminata solo dopo aver disconnesso tutti i container collegati ad essa.

Esempio di utilizzo:

Terminale


docker network rm my_bridge_network 

2.3 Esempi di comandi docker network

Esempi di utilizzo dei comandi docker network

Esempio 1: Creazione e utilizzo di una rete bridge

Creazione della rete:

Terminale

docker network create --driver bridge my_bridge_network 

Avvio dei container e connessione alla rete:

Terminale

docker run -d --name container1 --network my_bridge_network nginx

docker run -d --name container2 --network my_bridge_network redis 

Verifica della rete:

Terminale

docker network inspect my_bridge_network 

L'output del comando docker network inspect conterrà informazioni dettagliate sulla rete in formato JSON. Per rendere l'output più leggibile, puoi usare l'utility jq:

Terminale

docker network inspect my_bridge_network | jq

È utile per filtrare e visualizzare in modo strutturato i dati sulla rete, come i container connessi, i loro indirizzi IP e le impostazioni della subnet.

Esempio 2: Connessione e disconnessione dei container

Avvio del container:

Terminale

docker run -d --name my_container nginx 

Connessione del container alla rete:

Terminale

docker network connect my_bridge_network my_container 

Disconnessione del container dalla rete:

Terminale

docker network disconnect my_bridge_network my_container 
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION