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
:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- 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
docker network create --driver bridge my_bridge_network
Esempio di creazione di una rete con il driver overlay
docker network create --driver overlay my_overlay_network
Esempio di creazione di una rete con il driver macvlan
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.
docker network ls
L'output del comando sarà simile al seguente:
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:
docker network inspect my_bridge_network
L'output del comando conterrà informazioni sulla rete in formato 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:
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:
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:
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:
docker network create --driver bridge my_bridge_network
Avvio dei container e connessione alla rete:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Verifica della rete:
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
:
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:
docker run -d --name my_container nginx
Connessione del container alla rete:
docker network connect my_bridge_network my_container
Disconnessione del container dalla rete:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION