一、Docker网络简介
(1)查看Docker网络
******查看Docker的网络模式 [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE edca3506ab93 bridge bridge local 13dcc19e20b0 host host local 80abc22e3804 none null local #Docker的三种模式 bridge:桥接模式,此模式下容器可以通过Docker0网卡和外网通信,也可以和宿主机的其他容器进行通信,但是不能和其他主机的容器进行通信,因为可以会造成ip地址冲突,此模式是docker的默认网络模式 host:仅主机模式,此模式下容器会跟宿主机共享网络地址 none:这个模式没有任何网络,此模式下容器不可以跟其他任何主机或容器进行通信,只有一个lo网卡,地址是127的回环地址
- 每个容器都有ip,而这个ip是由Docker生成的Docker0网卡分配的,默认分配的网段就是172.17.0.0/16的网段,这个网段是可以自定义的,并且只有容器是bridge模式时,会自动分配
容器ip:
Docker0 ip:
可以看到ip都是同网段的
- 使用
Docker inspect
查看容器的详细信息,可以看到网关是指向Docker0网卡的
在查看宿主机ip时,在Docker下面还有一块网卡,那块网卡就是容器的网卡
这里的网卡if12表示是宿主机的序列号为12的网卡,并且宿主机的12网卡后面是if11,可以看到容器的网卡序列号为11,都是互相对应的,而宿主机的veth网卡其实相当于一个虚拟交换机,用于容器和宿主机之间互相通信
二、Docker的bridge网络
bridge网络架构示意图:
宿主机的veth网卡在每一个容器创建后都会存在,作用就是相当于一个虚拟交换机,从下面的图可以看出每个veth网卡都连接这相应的容器和宿主机
(1)创建使用bridge网络的容器
******查看bridge网络模式的信息 [root@docker ~]# docker network inspect bridge ******查看镜像默认映射的端口 [root@docker ~]# docker inspect nginx 。。。。。。 "ExposedPorts": { "80/tcp": {} #这里就是镜像默认的端口 }, 。。。。。。 ******查看容器的端口号 [root@docker ~]# docker run -d --name wen --net bridge nginx:latest #创建一个不带-p或者-P选项的容器 dac2bcfad659ecaf0eff97401f15ad0bbd66b4ae21493ca39755f06334818653 [root@docker ~]# docker run -d -P --name web2 nginx #创建一个带-p或-P选项的容器 de7000efdc4a5ccb37c084faac2393542ec68edde723663d122468c640c4d178 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de7000efdc4a nginx "/docker-entrypoint.…" 2 seconds ago Up 1 second 0.0.0.0:32768->80/tcp web2 dac2bcfad659 nginx:latest "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 80/tcp wen [root@docker ~]# docker port de7000efdc4a #后面写容器的id,只能查看使用了-p或者-P选项启动的容器端口,容器启动如果没有指定端口映射,那么这个容器的端口就是它使用镜像的默认端口 80/tcp -> 0.0.0.0:32768 [root@docker ~]# docker port dac2bcfad659 #查看不带-P选项的容器是不会输出任何信息的
(2)修改容器的默认网段
#修改容器的默认网段只需要修改daemon.json文件即可 [root@docker ~]# vim /etc/docker/daemon.json #修改文件 { "registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"], #这个是指定Docker Hub镜像仓库的URL "log-driver": "journald","bip":"192.168.200.1/24" #这个就是设置Docker容器分配的网段,不能与宿主机同一网段 } #保存退出 [root@docker ~]# systemctl restart docker #重启docker,重启docker时会自动停止所有容器 [root@docker ~]# ip a | grep docker0 #查看docker0网卡网段,成功变成200网段 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN inet 192.168.200.1/24 brd 192.168.200.255 scope global docker0 [root@docker ~]# docker ps -a #查看容器,发现自动停止了 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c176da0ed7d2 tomcat:latest "/bin/bash" 11 minutes ago Exited (0) About a minute ago tomcat [root@docker ~]# docker rm c176da0ed7d2 #先删除之前创建的容器 c176da0ed7d2 [root@docker ~]# docker run -it --name tomcat tomcat:latest /bin/bash #再次开启 root@65f3c83d9657:/usr/local/tomcat# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 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 13: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:c0:a8:c8:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.200.2/24 brd 192.168.200.255 scope global eth0 #查看ip发现成功修改 valid_lft forever preferred_lft forever
三、none网络
#使用none网络的容器除了lo网卡,没有其他任何网卡,完全与外界隔离,适用于不需要访问外部服务也不运行外部服务访问自己的应用场景 ******查看none网络的信息 [root@docker ~]# docker network inspect none ******创建使用none网络的容器 [root@docker ~]# docker run -it --name none --net none busybox:latest / # ip a #查看网络发现只有lo一个网卡,只有一个回环地址,所以也无法和外部服务通信 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 / #
四、host网络
- 使用host网络的主机,和宿主机共享网络地址,使用host网络模式可以使容器获得最好的数据转发性能
- 也正因为和宿主机共享网络地址,所以在使用多个host网络的容器时,多个容器会共享宿主机的网络地址,这样就需要容器上运行服务的端口不能相同,如果有端口相同的服务就需要手动去修改端口号
- 使用host模式一般只装一台容器,因为共享了宿主机的网络地址
******查看host网络的信息 [root@docker ~]# docker network inspect host ******创建使用host网络的容器 [root@docker ~]# docker run -it --name host --net host busybox:latest / # ip a #查看创建容器的网络信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:30:54:8c brd ff:ff:ff:ff:ff:ff inet 192.168.100.202/24 brd 192.168.100.255 scope global ens32 valid_lft forever preferred_lft forever inet6 fe80::34f4:cad:16ae:5b4d/64 scope link valid_lft forever preferred_lft forever 3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:30:54:96 brd ff:ff:ff:ff:ff:ff inet 192.168.8.146/24 brd 192.168.8.255 scope global dynamic ens34 valid_lft 84610sec preferred_lft 84610sec inet6 fe80::e6e9:552d:5efd:87ac/64 scope link valid_lft forever preferred_lft forever 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue link/ether 02:42:a8:3c:15:ee brd ff:ff:ff:ff:ff:ff inet 192.168.200.1/24 brd 192.168.200.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:a8ff:fe3c:15ee/64 scope link valid_lft forever preferred_lft forever 6: veth1faa93d@if5: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master docker0 link/ether 5e:52:59:44:18:ad brd ff:ff:ff:ff:ff:ff inet6 fe80::5c52:59ff:fe44:18ad/64 scope link valid_lft forever preferred_lft forever 8: vethd1ca06a@if7: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master docker0 link/ether 4e:9e:93:a0:11:c4 brd ff:ff:ff:ff:ff:ff inet6 fe80::4c9e:93ff:fea0:11c4/64 scope link valid_lft forever preferred_lft forever #复制一个终端查看宿主机的网络信息 [root@docker ~]# ip a #可以看到使用host网络的容器,网络信息和宿主机相同 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:30:54:8c brd ff:ff:ff:ff:ff:ff inet 192.168.100.202/24 brd 192.168.100.255 scope global ens32 valid_lft forever preferred_lft forever inet6 fe80::34f4:cad:16ae:5b4d/64 scope link valid_lft forever preferred_lft forever 3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:30:54:96 brd ff:ff:ff:ff:ff:ff inet 192.168.8.146/24 brd 192.168.8.255 scope global dynamic ens34 valid_lft 84570sec preferred_lft 84570sec inet6 fe80::e6e9:552d:5efd:87ac/64 scope link valid_lft forever preferred_lft forever 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 02:42:a8:3c:15:ee brd ff:ff:ff:ff:ff:ff inet 192.168.200.1/24 brd 192.168.200.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:a8ff:fe3c:15ee/64 scope link valid_lft forever preferred_lft forever 6: veth1faa93d@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether 5e:52:59:44:18:ad brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::5c52:59ff:fe44:18ad/64 scope link valid_lft forever preferred_lft forever 8: vethd1ca06a@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether 4e:9e:93:a0:11:c4 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::4c9e:93ff:fea0:11c4/64 scope link valid_lft forever preferred_lft forever
五、自定义网络
- Docker除了提供三种默认的网络模式之外,也允许用户针对一些特殊的应用场景去创建一些自定义的网络模式
- 使用自定义网络的容器会被单独隔离出来,并且容器之间可以互相通信,而没有使用相同自定义网络的容器是不能直接访问他们的,可以通过添加相同的自定义网络进行通信
- 一个容器可以属于多个网络,并且同一个自定义网络下的容器可以通过各自的容器名访问到对方,这是因为docker内嵌了一个dns的功能
- Docker提供的三种自定义网络驱动:
bridge
overlay
macvlan
- 自定义网络架构图
从下面的图可以看出,想要和不同网络的容器通信,只需要加一个网络即可
(1)自定义bridge网络
******(1)创建自定义网络 [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 16af5ad6b488 bridge bridge local 13dcc19e20b0 host host local 80abc22e3804 none null local [root@docker ~]# docker network create --driver bridge my #--driver用来定义使用的网络驱动 f2309a5c3d2093e12a9fd2a294624e5cde022e51350d4ef3e9217a23df05832c [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 16af5ad6b488 bridge bridge local 13dcc19e20b0 host host local f2309a5c3d20 my bridge local 80abc22e3804 none null local [root@docker ~]# ip a #在删除所有容器后,可以看到宿主机也加了一块网卡 。。。。。。 9: br-f2309a5c3d20: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:c1:cb:32:45 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global br-f2309a5c3d20 valid_lft forever preferred_lft forever [root@docker ~]# docker network create --driver bridge my2 #再创建一个网络模式 2e29454a0894ade347dac9f3997e8a3ad0fd644f5abe0408276a102775054a7c [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 16af5ad6b488 bridge bridge local 13dcc19e20b0 host host local f2309a5c3d20 my bridge local 2e29454a0894 my2 bridge local 80abc22e3804 none null local [root@docker ~]# ip a #可以看到又加了一块网卡 。。。。。。 10: br-2e29454a0894: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:ad:6e:14:0d brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 brd 172.18.255.255 scope global br-2e29454a0894 valid_lft forever preferred_lft forever ******(2)使用自定义网络创建容器 #复制两个终端分别开启两个容器 [root@docker ~]# docker run -it --net my --name web httpd:latest /bin/bash root@05c67e2b1274:/usr/local/apache2# [root@docker ~]# docker run -it --net my --name test busybox:latest #创建使用my自定义网络的容器 / # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 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 #因为my使用的是bridge网络驱动,所以会分配ip valid_lft forever preferred_lft forever #切换终端,查看容器运行状态 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e74a880ef0d busybox:latest "sh" About a minute ago Up About a minute test 05c67e2b1274 httpd:latest "/bin/bash" 7 seconds ago Up 6 seconds 80/tcp web
(2)通过指定子网和网关的方式创建自定义网络
******(1)创建一个新的自定义网络my3 [root@docker ~]# docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my3 966861dba60a47eb7abb1d6a02e147c15af8af3c9b0b41840c80b1ee9a50c3c3 [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 16af5ad6b488 bridge bridge local 13dcc19e20b0 host host local f2309a5c3d20 my bridge local 2e29454a0894 my2 bridge local 966861dba60a my3 bridge local 80abc22e3804 none null local [root@docker ~]# docker network inspect my3 。。。。。。 "Config": [ { "Subnet": "172.22.16.0/24", "Gateway": "172.22.16.1" } ] }, 。。。。。。 ******(2)创建一个新容器使用自定义网络my3 [root@docker ~]# docker run -it --net my3 busybox:latest / # ip a #查看网络信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 18: eth0@if19: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:16:10:02 brd ff:ff:ff:ff:ff:ff inet 172.22.16.2/24 brd 172.22.16.255 scope global eth0 valid_lft forever preferred_lft forever #切换另一个终端查看容器的详细信息 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a4487b801c4 busybox:latest "sh" About a minute ago Up About a minute hungry_cerf 8e74a880ef0d busybox:latest "sh" 9 minutes ago Exited (0) About a minute ago test 05c67e2b1274 httpd:latest "/bin/bash" 11 minutes ago Exited (0) 10 minutes ago web [root@docker ~]# docker inspect 6a4487b801c4 。。。。。。 "Gateway": "172.22.16.1", #可以看到网管和ip都和刚才设定的自定义网络的配置相同 "IPAddress": "172.22.16.2", 。。。。。。 ******(3)创建一个容器并且指定其ip [root@docker ~]# docker rm $(docker ps -aq) 6a4487b801c4 8e74a880ef0d 05c67e2b1274 [root@docker ~]# docker run -it --net my3 --name test --ip=172.22.16.33 busybox:latest / # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 22: eth0@if23: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:16:10:21 brd ff:ff:ff:ff:ff:ff inet 172.22.16.33/24 brd 172.22.16.255 scope global eth0 valid_lft forever preferred_lft forever #切换回另一个终端 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 084db6cf7491 busybox:latest "sh" 34 seconds ago Up 33 seconds test [root@docker ~]# docker inspect 084db6cf7491 。。。。。。 "Gateway": "172.22.16.1", "IPAddress": "172.22.16.33", 。。。。。。
(3)使用自定义网络和其他网络进行通信
******(1)清楚所有容器 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 084db6cf7491 busybox:latest "sh" 4 minutes ago Up 4 minutes test [root@docker ~]# docker stop $(docker ps -aq) 084db6cf7491 [root@docker ~]# docker rm $(docker ps -aq) 084db6cf7491 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ******(2)创建三个容器,分别是使用默认网络bridge的容器,使用my自定义网络的容器,还有使用my3自定义网络的容器,最终的目的是实现my自定义网络可以和另外两个容器进行通信,而其他两个容器互相不能通信 #创建使用默认网络bridge的容器 [root@docker ~]# docker run -it --name bridge busybox:latest / # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:c0:a8:c8:02 brd ff:ff:ff:ff:ff:ff inet 192.168.200.2/24 brd 192.168.200.255 scope global eth0 valid_lft forever preferred_lft forever #创建使用my自定义网络的容器 [root@docker ~]# docker run -it --net my --name my busybox:latest / # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 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 #创建使用my3自定义网络的容器 [root@docker ~]# docker run -it --net my3 --name my3 busybox:latest / # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 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 28: eth0@if29: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:16:10:02 brd ff:ff:ff:ff:ff:ff inet 172.22.16.2/24 brd 172.22.16.255 scope global eth0 valid_lft forever preferred_lft forever ******(3)想要让my自定义网络的容器可以与默认网络容器以及my3网络容器通信的话,只需要把my网络容器添加另外两个容器的网卡即可 #先使用my网络容器去ping另外两个容器,发现都无法ping通 / # ping 192.168.200.2 PING 192.168.200.2 (192.168.200.2): 56 data bytes ^C --- 192.168.200.2 ping statistics --- 23 packets transmitted, 0 packets received, 100% packet loss / # ping 172.22.16.2 PING 172.22.16.2 (172.22.16.2): 56 data bytes ^C --- 172.22.16.2 ping statistics --- 8 packets transmitted, 0 packets received, 100% packet loss #添加网卡 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 08d19eaa9a88 busybox:latest "sh" 4 minutes ago Up 4 minutes my3 0978d9da8119 busybox:latest "sh" 5 minutes ago Up 5 minutes my 35718e6eff5f busybox:latest "sh" 5 minutes ago Up 5 minutes bridge [root@docker ~]# docker network connect my3 0978d9da8119 #把my3网卡添加到my容器,后面写容器id [root@docker ~]# docker network connect bridge 0978d9da8119 #把默认网卡添加到my容器 #重新在my网络的容器中进行ping,发现可以正常通信 / # ping 192.168.200.2 PING 192.168.200.2 (192.168.200.2): 56 data bytes 64 bytes from 192.168.200.2: seq=0 ttl=64 time=0.132 ms 64 bytes from 192.168.200.2: seq=1 ttl=64 time=0.078 ms ^C --- 192.168.200.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.078/0.105/0.132 ms / # ping 172.22.16.2 PING 172.22.16.2 (172.22.16.2): 56 data bytes 64 bytes from 172.22.16.2: seq=0 ttl=64 time=0.134 ms 64 bytes from 172.22.16.2: seq=1 ttl=64 time=0.044 ms ^C --- 172.22.16.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.044/0.089/0.134 ms ******(4)如果不想让my网络容器可以与my3网络容器进行通信的话,可以把my网络容器的my3网卡删除 [root@docker ~]# docker network disconnect my3 0978d9da8119 #切换到my网络容器进行ping,发现无法通信了,但是bridge网络容器可以正常通信 / # ping 172.22.16.2 PING 172.22.16.2 (172.22.16.2): 56 data bytes ^C --- 172.22.16.2 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss / # ping 192.168.200.2 PING 192.168.200.2 (192.168.200.2): 56 data bytes 64 bytes from 192.168.200.2: seq=0 ttl=64 time=0.114 ms 64 bytes from 192.168.200.2: seq=1 ttl=64 time=0.047 ms 64 bytes from 192.168.200.2: seq=2 ttl=64 time=0.056 ms ^C --- 192.168.200.2 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.047/0.072/0.114 ms