Docker网络管理跨主机网络互联之flannel篇

环境准备

docker服务安装完成并启动,各节点状态

节点docker101

# 宿主机网卡信息
[root@docker101 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:f3:5a:eb:56  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.91.101  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::20c:29ff:feba:3a3a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ba:3a:3a  txqueuelen 1000  (Ethernet)
        RX packets 259986  bytes 226119395 (215.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208017  bytes 18399325 (17.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# docker网络列表
[root@docker101 ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
2e583583c9e2   bridge    bridge    local
3d74238575bd   host      host      local
ddb169d385b0   none      null      local

# 容器列表
[root@docker101 ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

节点docker102

[root@docker102 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:bc:35:52:77  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.91.102  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::20c:29ff:fe36:6f2c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:36:6f:2c  txqueuelen 1000  (Ethernet)
        RX packets 153216  bytes 205644110 (196.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37511  bytes 2796005 (2.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
[root@docker102 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
25db496df2b6        bridge              bridge              local
5eb4e8c1b71b        host                host                local
b02b12bc1ef2        none                null                local

[root@docker102 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker在启动时会自动创建一个名为docker0 的虚拟网桥,并将其配置为与容器网络通信的主要接口。

部署etcd

在节点docker101部署etcd服务

# 1.安装etcd服务
[root@docker101 ~]# yum install -y etcd

# 2.修改etcd配置文件,修改如下,配置etcd客户端的连接地址
[root@docker101 ~]# egrep ^[a-Z] /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"

# 3.启动服务并设置开机自启
[root@docker101 ~]# systemctl start etcd
[root@docker101 ~]# systemctl enable etcd
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.

# 检查etcd服务是否监听2379端口
[root@docker101 ~]# netstat -tnulp | grep 2379
tcp6       0      0 :::2379                 :::*                    LISTEN      80204/etcd

部署flannel

在节点docker101部署flannel

# 1.安装服务
[root@docker101 ~]# yum install -y flannel

# 2.修改flanneld服务的配置文件
[root@docker101 ~]# vim /etc/sysconfig/flanneld
[root@docker101 ~]# egrep ^[a-Z] /etc/sysconfig/flanneld
# 指定etcd的地址
FLANNEL_ETCD_ENDPOINTS="http://192.168.91.101:2379"
# 指定etcd的前缀key,如果修改的话,后续在创建etcd的KEY时也要做相应的调整哟~我上面的etcd案例使用的就是默认该前缀。
FLANNEL_ETCD_PREFIX="/tamy/network"

# 3.在etcd中创建相应的key(如果FLANNEL_ETCD_PREFIX未作修改,这一步可以不用操作)
[root@docker101 ~]# etcdctl mkdir /tamy/network
[root@docker101 ~]# etcdctl mk /tamy/network/config '{"Network":"172.20.0.0/16","Backend":{"Type":"vxlan"}}'
{"Network":"172.20.0.0/16","Backend":{"Type":"vxlan"}}
[root@docker101 ~]# etcdctl get /tamy/network/config
{"Network":"172.20.0.0/16","Backend":{"Type":"vxlan"}}

# 4.启动flanneld服务
[root@docker101 ~]# systemctl start flanneld

# 5.查看宿主机网卡,发现多了一张flannel.1的网卡,ip就是步骤三在etcd中配置的IP范围
[root@docker101 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:f3:5a:eb:56  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.91.101  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::20c:29ff:feba:3a3a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ba:3a:3a  txqueuelen 1000  (Ethernet)
        RX packets 280247  bytes 245675843 (234.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 220821  bytes 19782199 (18.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 172.20.35.0  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::3cc3:e1ff:fe93:a4e3  prefixlen 64  scopeid 0x20<link>
        ether 3e:c3:e1:93:a4:e3  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 6 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 435  bytes 41777 (40.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 435  bytes 41777 (40.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 该文件存储了Docker关于flannel网络插件相关的一些网络配置选项,该文件是flannel自动生成的
[root@docker101 ~]# cat /var/run/flannel/docker
DOCKER_OPT_BIP="--bip=172.20.35.1/24" # --bip 选项指定了 Docker 容器使用的桥接网络(在这里是docker0)的IP 地址范围
DOCKER_OPT_IPMASQ="--ip-masq=true" # 开启IP地址伪装,当容器访问外部网络(如互联网)时,容器的源 IP 地址将被替换为 Docker 主机的 IP 地址。这有助于简化网络配置和提高安全性,因为外部网络只会看到 Docker 主机的 IP,而不会直接看到容器的 IP
DOCKER_OPT_MTU="--mtu=1450" # --mtu 选项指定了最大传输单元
DOCKER_NETWORK_OPTIONS=" --bip=172.20.35.1/24 --ip-masq=true --mtu=1450"

# 路由表信息
[root@docker101 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.91.2    0.0.0.0         UG    0      0        0 ens33  # 这是默认路由,表示当没有其他匹配的路由时,数据包将通过网关 192.168.91.2 进行转发
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0 # 这是 Docker 默认的桥接网络(docker0)的地址范围,它用于容器之间的通信
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 flannel.1 # 这是通过 Flannel 网络插件配置的网络地址范围,允许使用 Flannel 的容器之间进行通信
192.168.91.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33

# iptables filter表的FORWARD链对Docker的规则为DROP
[root@docker101 ~]# iptables -vnL
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0

同理对节点docker102进行相同配置,但是不用配置步骤三,etcd的配置只需在docker101进行。

# 节点docker102也多了一张flannel网卡
[root@docker102 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:bc:35:52:77  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.91.102  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::20c:29ff:fe36:6f2c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:36:6f:2c  txqueuelen 1000  (Ethernet)
        RX packets 161504  bytes 213958338 (204.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42777  bytes 3357917 (3.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 172.20.18.0  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::1c2a:12ff:fe19:23d4  prefixlen 64  scopeid 0x20<link>
        ether 1e:2a:12:19:23:d4  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 5 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@docker102 ~]# cat /var/run/flannel/docker
DOCKER_OPT_BIP="--bip=172.20.18.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=true"
DOCKER_OPT_MTU="--mtu=1450"
DOCKER_NETWORK_OPTIONS=" --bip=172.20.18.1/24 --ip-masq=true --mtu=1450"

[root@docker102 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.91.2    0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 flannel.1
192.168.91.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33

[root@docker102 ~]# iptables -vnL
Chain INPUT (policy ACCEPT 6239 packets, 8123K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0

配置docker启动脚本

各节点修改docker启动脚本

# 节点docker101
[root@docker101 ~]# cat /usr/lib/systemd/system/docker.service
...
EnvironmentFile=/var/run/flannel/docker   # 指定一个环境变量文件
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_NETWORK_OPTIONS # 在ExecStart启动命令的最后面添加$DOCKER_NETWORK_OPTIONS,它的值就是/var/run/flannel/docker中定义的值
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT # 设置了 iptables 的 FORWARD 链的默认策略为 ACCEPT, 使得Docker容器之间的流量可以被转发,从而允许容器与其他主机进行通信
...

# 重载启动脚本并重新启动docker服务
[root@docker101 ~]# systemctl daemon-reload
[root@docker101 ~]# systemctl restart docker

# docker0的ip地址发生了变化
[root@docker101 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.35.1  netmask 255.255.255.0  broadcast 172.20.35.255
        ether 02:42:f3:5a:eb:56  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.91.101  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::20c:29ff:feba:3a3a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ba:3a:3a  txqueuelen 1000  (Ethernet)
        RX packets 287139  bytes 246145803 (234.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 232614  bytes 21148285 (20.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 172.20.35.0  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::3cc3:e1ff:fe93:a4e3  prefixlen 64  scopeid 0x20<link>
        ether 3e:c3:e1:93:a4:e3  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 8 overruns 0  carrier 0  collisions 0

同理对docker102修改docker 的启动脚本

启动容器校验网络连通性

节点docker101

[root@docker101 ~]# docker run --rm -it --name a1 alpine
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:14:23:02
          inet addr:172.20.35.2  Bcast:172.20.35.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:578 (578.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # ip a
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
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP
    link/ether 02:42:ac:14:23:02 brd ff:ff:ff:ff:ff:ff
    inet 172.20.35.2/24 brd 172.20.35.255 scope global eth0
       valid_lft forever preferred_lft forever

[root@docker101 ~]# docker run --rm -it --name c2 alpine
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:14:23:03
          inet addr:172.20.35.3  Bcast:172.20.35.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:508 (508.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # ip a
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
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP
    link/ether 02:42:ac:14:23:03 brd ff:ff:ff:ff:ff:ff
    inet 172.20.35.3/24 brd 172.20.35.255 scope global eth0
       valid_lft forever preferred_lft forever

# 宿主机
ip a 
11: veth0b69421@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master docker0 state UP group default
    link/ether 1a:5f:00:40:9c:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::185f:ff:fe40:9cc2/64 scope link
       valid_lft forever preferred_lft forever
13: veth6194f73@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master docker0 state UP group default
    link/ether ce:74:79:55:42:b8 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::cc74:79ff:fe55:42b8/64 scope link
       valid_lft forever preferred_lft forever

节点docker102

[root@docker102 ~]# docker run --rm -it --name a3 alpine
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:14:12:02
          inet addr:172.20.18.2  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::42:acff:fe14:1202/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1156 (1.1 KiB)  TX bytes:578 (578.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# ping节点101的a1容器--联通
/ # ping 172.20.35.2 -c 3
PING 172.20.35.2 (172.20.35.2): 56 data bytes
64 bytes from 172.20.35.2: seq=0 ttl=62 time=0.727 ms
64 bytes from 172.20.35.2: seq=1 ttl=62 time=0.936 ms
64 bytes from 172.20.35.2: seq=2 ttl=62 time=1.078 ms

# ping外网----联通
/ # ping www.baidu.com -c 3
PING www.baidu.com (36.155.132.76): 56 data bytes
64 bytes from 36.155.132.76: seq=0 ttl=127 time=27.385 ms
64 bytes from 36.155.132.76: seq=1 ttl=127 time=24.177 ms
64 bytes from 36.155.132.76: seq=2 ttl=127 time=22.805 ms

/ # ip a
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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP
    link/ether 02:42:ac:14:12:02 brd ff:ff:ff:ff:ff:ff
    inet 172.20.18.2/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe14:1202/64 scope link
       valid_lft forever preferred_lft forever

# 宿主机
7: veth8c5b8bc@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master docker0 state UP group default
    link/ether 4a:64:22:8b:77:61 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::4864:22ff:fe8b:7761/64 scope link
       valid_lft forever preferred_lft forever

在这里插入图片描述

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值