From 9707ac867002b19b681e38a4710d6d153c67d856 Mon Sep 17 00:00:00 2001
From: Alessandro Costantini <alessandro.costantini@cnaf.infn.it>
Date: Thu, 29 Apr 2021 07:55:40 +0000
Subject: [PATCH] Update docker_handson.md

---
 containers/docker_handson.md | 125 +++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)

diff --git a/containers/docker_handson.md b/containers/docker_handson.md
index 89ae4de..9f06f9c 100644
--- a/containers/docker_handson.md
+++ b/containers/docker_handson.md
@@ -447,6 +447,131 @@ volumes:
 
 ```
 
+## Docker network
+```
+$ ip address show​
+...
+
+$ docker run -it --network=none alpine /bin/sh​
+/ # ip address show
+1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
+    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+    inet 127.0.0.1/8 scope host lo
+       valid_lft forever preferred_lft forever
+/ #
+
+
+$ docker network
+Usage:  docker network COMMAND
+Manage networks
+Commands:
+  connect     Connect a container to a network
+  create      Create a network
+  disconnect  Disconnect a container from a network
+  inspect     Display detailed information on one or more networks
+  ls          List networks
+  prune       Remove all unused networks
+  rm          Remove one or more networks
+Run 'docker network COMMAND --help' for more information on a command.
+
+$ docker network ls
+NETWORK ID     NAME       DRIVER    SCOPE
+8cf72d5da8d9   bridge     bridge    local
+77d5801c72d6   host       host      local
+00059d5f3d9d   minikube   bridge    local
+9f01cae8edb7   none       null      local
+
+$ docker run -td --name test1 alpine​
+$ docker run -td --name test2 alpine​
+
+$ docker exec -it test1 /bin/sh
+/ # ip address show
+1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
+    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+    inet 127.0.0.1/8 scope host lo
+       valid_lft forever preferred_lft forever
+306: eth0@if307: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
+    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
+    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
+       valid_lft forever preferred_lft forever
+/ # exit
+
+$ docker exec -it test2 /bin/sh
+/ # ip address show
+1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
+    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+    inet 127.0.0.1/8 scope host lo
+       valid_lft forever preferred_lft forever
+308: eth0@if309: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
+    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
+    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
+       valid_lft forever preferred_lft forever
+/ # ping 172.17.0.2
+PING 172.17.0.2 (172.17.0.2): 56 data bytes
+64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.252 ms
+64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.246 ms
+64 bytes from 172.17.0.2: seq=2 ttl=64 time=0.230 ms
+64 bytes from 172.17.0.2: seq=3 ttl=64 time=0.185 ms
+64 bytes from 172.17.0.2: seq=4 ttl=64 time=0.173 ms
+64 bytes from 172.17.0.2: seq=5 ttl=64 time=0.337 ms
+^C
+--- 172.17.0.2 ping statistics ---
+6 packets transmitted, 6 packets received, 0% packet loss
+round-trip min/avg/max = 0.173/0.237/0.337 ms
+/ # exit
+
+
+$ docker network ls
+NETWORK ID     NAME       DRIVER    SCOPE
+8cf72d5da8d9   bridge     bridge    local
+77d5801c72d6   host       host      local
+00059d5f3d9d   minikube   bridge    local
+9f01cae8edb7   none       null      local
+
+$ docker network create bridge1
+21e98d5bc828cbc55ed90866bf93573b7677be433b2b03346f6e0a915d4b18fe
+
+$ docker network ls
+NETWORK ID     NAME       DRIVER    SCOPE
+8cf72d5da8d9   bridge     bridge    local
+21e98d5bc828   bridge1    bridge    local
+...
+
+$ docker run -td --name test3 --network=bridge1 alpine
+
+$ docker exec -it test3 /bin/sh
+/ # ip address show
+1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
+    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+    inet 127.0.0.1/8 scope host lo
+       valid_lft forever preferred_lft forever
+311: eth0@if312: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
+    link/ether 02:42:c0:a8:f0:02 brd ff:ff:ff:ff:ff:ff
+    inet 192.168.240.2/20 brd 192.168.255.255 scope global eth0
+       valid_lft forever preferred_lft forever
+/ # ping 172.17.0.2
+PING 172.17.0.2 (172.17.0.2): 56 data bytes
+^C
+--- 172.17.0.2 ping statistics ---
+2 packets transmitted, 0 packets received, 100% packet loss
+/ # ping 172.17.0.3
+PING 172.17.0.3 (172.17.0.3): 56 data bytes
+^C
+--- 172.17.0.3 ping statistics ---
+4 packets transmitted, 0 packets received, 100% packet loss
+
+$ docker network connect bridge test3
+
+
+$ docker network inspect bridge
+[
+    {
+        "Name": "bridge",
+...
+
+$ docker network inspect my-bridge | python -c "import sys, json; print([v['Name'] for k,v in json.load(sys.stdin)[0]['Containers'].items()])"
+
+```
 
 ## Docker process management
 ```
-- 
GitLab