{"id":31407,"date":"2022-10-03T13:14:29","date_gmt":"2022-10-03T13:14:29","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=31407"},"modified":"2025-07-12T05:41:39","modified_gmt":"2025-07-12T05:41:39","slug":"docker-networking-commands-and-example","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-networking-commands-and-example\/","title":{"rendered":"Docker Tutorials: Networking &#8211; Commands and Example"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">==========================\nFROM ubuntu\nRUN apt-get update &amp;&amp; apt-get install -y iputils-ping traceroute net-tools iproute2\n\nENTRYPOINT &#91;\"\/bin\/bash\"]\n\n&gt; docker build -t image-net .\n\n==============================\n\n&gt; docker run -it --name=net1 image-net\n&gt; ip link show\n&gt; docker run -it --name=net2 image-net\n&gt; ip link show\n&gt; docker attach net1\n&gt; ip a\n&gt; ping 8.8.8.8\n&gt; traceroute 8.8.8.8\n&gt; docker inspect net2\n# Check Network setting .....\n\tbridge\n\tip address\n\tport mappings\n&gt; docker ps\n&gt; ls -l \/var\/lib\/docker\/containers # Containers Meta Data\n&gt; ls -l \/var\/lib\/docker\/containers\/cont-id\n\t# hosts\n\t# resolv.conf\n\n==========================================\n&gt; docker network ls\n&gt; docker run -itd --name=container1 busybox\n&gt; docker run -itd --name=container2 busybox\n&gt; docker network inspect bridge\n\nnone\nThe none network adds a container to a container-specific network stack. That container lacks a network interface.\n\nThis mode will not configure any IP for the container and doesn\u2019t have any access to the external network as well as for other containers. It does have the loopback address and can be used for running batch jobs.\n\n# docker run -it --network=none ubuntu:14.04 \/bin\/bash\n# docker run -it --network=none ubuntu \/bin\/bash\nroot@66308c6686be:\/# ifconfig\n\n# docker inspect 66308c6686be | grep -i ipaddr\n\n\nhost\nThe host network adds a container on the host\u2019s network stack. As far as the network is concerned, there is no isolation between the host machine and the container. For instance, if you run a container that runs a web server on port 80 using host networking, the web server is available on port 80 of the host machine.\n\n# docker run -it --net=host ubuntu:14.04 \/bin\/bash\n# docker run -it --net=host ubuntu \/bin\/bash\n\nroot@labadmin-VirtualBox:\/# hostname\n\n# ip addr | grep -A 2 eth0\n\n\nUser-defined networks\n=========================================\n&gt; docker network create --driver bridge other-network\n&gt; docker inspect other-network\n&gt; docker run --network=<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">NETWORK<\/span>&gt;<\/span>\n&gt; docker run --net=other-network --name=ub1 ubuntu\n\nROUGH\n===================================\nBARE mACHINNE\n\teth0:\n\tlo\n\nAfter the Docker Enginer Start\n\tdocker0\n\n===================================================================\n===================================================================\nBefore Installing DockerEngine\n----------------------------------\neth0: flags=4163<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,BROADCAST,RUNNING,MULTICAST<\/span>&gt;<\/span>  mtu 9001\n        inet 172.31.23.252  netmask 255.255.240.0  broadcast 172.31.31.255\n        inet6 fe80::61:f2ff:fedb:1bc8  prefixlen 64  scopeid 0x20<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span>&gt;<\/span>\n        ether 02:61:f2:db:1b:c8  txqueuelen 1000  (Ethernet)\n        RX packets 317  bytes 33579 (32.7 KiB)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 319  bytes 39050 (38.1 KiB)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\nlo: flags=73<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,LOOPBACK,RUNNING<\/span>&gt;<\/span>  mtu 65536\n        inet 127.0.0.1  netmask 255.0.0.0\n        inet6 ::1  prefixlen 128  scopeid 0x10<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">host<\/span>&gt;<\/span>\n        loop  txqueuelen 1  (Local Loopback)\n        RX packets 0  bytes 0 (0.0 B)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 0  bytes 0 (0.0 B)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\n---------------------------------------\nAfer Installing DockerEngine\n--------------------------------------\nSame output as above\n\n---------------------------------------\nAfer Stratting the DockerEngine\n--------------------------------------\n\ndocker0: flags=4099<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,BROADCAST,MULTICAST<\/span>&gt;<\/span>  mtu 1500\n        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0\n        ether 02:42:61:50:9b:38  txqueuelen 0  (Ethernet)\n        RX packets 0  bytes 0 (0.0 B)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 0  bytes 0 (0.0 B)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\neth0: flags=4163<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,BROADCAST,RUNNING,MULTICAST<\/span>&gt;<\/span>  mtu 9001\n        inet 172.31.23.252  netmask 255.255.240.0  broadcast 172.31.31.255\n        inet6 fe80::61:f2ff:fedb:1bc8  prefixlen 64  scopeid 0x20<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span>&gt;<\/span>\n        ether 02:61:f2:db:1b:c8  txqueuelen 1000  (Ethernet)\n        RX packets 54830  bytes 81091852 (77.3 MiB)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 16145  bytes 1207864 (1.1 MiB)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\nlo: flags=73<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,LOOPBACK,RUNNING<\/span>&gt;<\/span>  mtu 65536\n        inet 127.0.0.1  netmask 255.0.0.0\n        inet6 ::1  prefixlen 128  scopeid 0x10<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">host<\/span>&gt;<\/span>\n        loop  txqueuelen 1  (Local Loopback)\n        RX packets 0  bytes 0 (0.0 B)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 0  bytes 0 (0.0 B)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n---------------------------------------------\nHow to check the list of network?\n&gt; docker network ls\n\nHow to describe the network brdige?\n&gt; docker inspect 8bf2e2945be5\n\nONE SCNARIO?\n&gt; docker pull ubuntu\n&gt; docker run -it ubuntu \/bin\/bash\n&gt; CTP + P + Q\n\nDid you get this? - A virtual ethernet to conntect container to your docker0\n------------------------\nveth6550a7a: flags=4163<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">UP,BROADCAST,RUNNING,MULTICAST<\/span>&gt;<\/span>  mtu 1500\n        inet6 fe80::6033:bbff:fea0:839f  prefixlen 64  scopeid 0x20<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span>&gt;<\/span>\n        ether 62:33:bb:a0:83:9f  txqueuelen 0  (Ethernet)\n        RX packets 0  bytes 0 (0.0 B)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 16  bytes 1296 (1.2 KiB)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\nHow to create a your own Bridge in Docker?\n&gt; =========================================\n&gt; docker network create --driver bridge verizon1\n&gt; docker network ls\n\n&gt; docker run -it --network=verizon1 ubuntu \/bin\/bash \n&gt; CTP + P + Q\n\nPINGING FROM HOST\n==============================\nping to docker0 container?\n&#91;root@ip-172-31-23-252 ~]# ping 172.18.0.2\nPING 172.18.0.2 (172.18.0.2) 56(84) bytes of data.\n64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.061 ms\n64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.051 ms\n64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.050 ms\n\nping to verizon container?\n--- 172.18.0.2 ping statistics ---\n3 packets transmitted, 3 received, 0% packet loss, time 1999ms\nrtt min\/avg\/max\/mdev = 0.050\/0.054\/0.061\/0.005 ms\n&#91;root@ip-172-31-23-252 ~]# ping 172.17.0.2\nPING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.\n64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.045 ms\n64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.046 ms\n64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.052 ms\n\nCan you ping each other from container being in diff bridge?\ninside the containers?\n&gt; apt-get update &amp;&amp; apt-get install -y iputils-ping traceroute net-tools iproute2\nroot@ee0f0fd7b6e2:\/# ping 172.17.0.2\nPING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.\n^C\n--- 172.17.0.2 ping statistics ---\n10 packets transmitted, 0 received, 100% packet loss, time 9000ms\n\n\n&gt; docker network create --driver bridge verizon2\n&gt; docker inspect other-network\n&gt; docker run --network=<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">NETWORK<\/span>&gt;<\/span>\n&gt; docker run --net=other-network --name=ub1 ubuntu\n\n----------------Scanario with null---------------------------\ndocker run -it --network=none ubuntu \/bin\/bash \n\n----------------Scanario with host---------------------------\ndocker run -it --network=host ubuntu \/bin\/bash \n172.31.23.252\n\n\n\n\n\n\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[],"class_list":["post-31407","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=31407"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31407\/revisions"}],"predecessor-version":[{"id":31409,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31407\/revisions\/31409"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=31407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=31407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=31407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}