Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. 容器/k8s
  3. 正文

docker容器跨宿主机通信方法(1)

2017年05月15日 11545点热度 0人点赞 0条评论

Host网络方式:

容器run的时候启用--network来指明host网络类型,使得容器复用host的网络空间。容器将得到和宿主机一样的网络接口及IP。这样的缺点是容器在网络上没有隔离,而且多个容器存在抢占同一端口的可能性,限制性比较大。

桥接外部网络方式:

容器桥接到一个自定义网桥(非docker产生的网桥,而是linux中独立创建的网桥),并将该自定义网桥与宿主机物理接口进行桥接,这样将容器直接透传到外部物理网络里来,使得各个容器就像直接活在外部网络中的一个主机一样。可以通过pipework这个工具来自动化执行上述这个过程

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# pipework br0 busybox1 192.168.188.188@192.168.188.1
Error: No such object: busybox1
 
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 
[root@localhost ~]# docker run -itd --name busybox1 busybox
0935decc0af78254f4ec446e4dc25a50dc5d135d517edf5da39e6a7e61511519
 
[root@localhost ~]# pipework br0 busybox1 192.168.188.188/24@192.168.188.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[root@localhost ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::b496:f0ff:fe56:845a  prefixlen 64  scopeid 0x20<link>
        ether b6:96:f0:56:84:5a  txqueuelen 0  (Ethernet)
        RX packets 4  bytes 112 (112.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 738 (738.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:b7ff:fef7:ea61  prefixlen 64  scopeid 0x20<link>
        ether 02:42:b7:f7:ea:61  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 258 (258.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.183  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20c:29ff:feae:1179  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ae:11:79  txqueuelen 1000  (Ethernet)
        RX packets 251156  bytes 305142445 (291.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 85054  bytes 5898472 (5.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:ae:11:83  txqueuelen 1000  (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
 
eno50332184: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:ae:11:8d  txqueuelen 1000  (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
 
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 0  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
veth1452d20: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::2092:b4ff:feda:c102  prefixlen 64  scopeid 0x20<link>
        ether 22:92:b4:da:c1:02  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 648 (648.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
veth1pl70825: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::b496:f0ff:fe56:845a  prefixlen 64  scopeid 0x20<link>
        ether b6:96:f0:56:84:5a  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 168 (168.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15  bytes 1206 (1.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@localhost ~]# ethtool -S veth1pl70825
NIC statistics:
     peer_ifindex: 14
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:ae:11:79 brd ff:ff:ff:ff:ff:ff
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:ae:11:83 brd ff:ff:ff:ff:ff:ff
4: eno50332184: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:ae:11:8d brd ff:ff:ff:ff:ff:ff
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
    link/ether 8e:ed:03:83:45:0b brd ff:ff:ff:ff:ff:ff
6: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
    link/ether e2:2e:3f:25:e0:40 brd ff:ff:ff:ff:ff:ff
7: br-ex: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
    link/ether be:22:2e:ad:d8:48 brd ff:ff:ff:ff:ff:ff
8: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 02:42:b7:f7:ea:61 brd ff:ff:ff:ff:ff:ff
12: veth1452d20@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT
    link/ether 22:92:b4:da:c1:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether b6:96:f0:56:84:5a brd ff:ff:ff:ff:ff:ff
15: veth1pl70825@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT qlen 1000
    link/ether b6:96:f0:56:84:5a brd ff:ff:ff:ff:ff:ff link-netnsid 0
[root@localhost ~]# docker ps a

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# linkns
The script will link all running containers namespace into /var/run/netns, so you can use ip netns command for them.
Deleting all existed symbol links
namespace for busybox1 was linked into /var/run/netns/busybox1
[root@localhost ~]# ip netns busybox1 ip link
Command "busybox1" is unknown, try "ip netns help".
[root@localhost ~]# ip netns exec busybox1 ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
14: eth1@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether da:9b:43:80:73:09 brd ff:ff:ff:ff:ff:ff link-netnsid 0

可以看到pipework自动为运行中的容器增加了新网卡eth1并配置IP及路由,同时将该容器内网卡命名为eth1并link到外部一个veth上,该veth落在br0上. 在容器内部删除其它缺省路由,根据命令里提供的网关地址设置缺省路由。

1
2
3
4
5
6
[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.b696f056845a       no              veth1pl70825
                                                        veth1pl71141
docker0         8000.0242b7f7ea61       no              veth1452d20
                                                        vethc2954fd

 

1
2
3
4
5
6
7
/ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.188.1   0.0.0.0         UG    0      0        0 eth1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.188.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
/ #

pipework并没有对br0配置接口IP,也没有将其桥接到物理网卡上,这一步工作还需手工完成,将eno33554960加入到br0网桥,且配置br0的IP地址:

1
2
3
4
5
6
7
8
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.188.1  netmask 255.255.255.0  broadcast 192.168.188.255
        inet6 fe80::b496:f0ff:fe56:845a  prefixlen 64  scopeid 0x20<link>
        ether f6:8d:63:4a:6b:46  txqueuelen 0  (Ethernet)
        RX packets 86  bytes 2576 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1884 (1.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# brctl addif br0 eno33554960
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29ae1183       no              eno33554960
                                                        veth1pl71474
                                                        veth1pl71688
docker0         8000.0242b7f7ea61       no              veth2d6e851
                                                        veth5082a15

在容器内ping 网关,及外部地址:

1
2
3
4
5
6
7
8
9
10
11
12
/ # ping 192.168.188.1
PING 192.168.188.1 (192.168.188.1): 56 data bytes
64 bytes from 192.168.188.1: seq=0 ttl=64 time=0.281 ms
64 bytes from 192.168.188.1: seq=1 ttl=64 time=0.136 ms
^C
--- 192.168.188.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.136/0.208/0.281 ms
/ # ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=1 ttl=128 time=306.267 ms
64 bytes from 8.8.8.8: seq=2 ttl=128 time=245.188 ms

备注:上述方法执行的pipework 默认并没有保存到容器里,容器重启后配置都会丢失,在一个生产环境下从容器本身这种结构考虑,一般不应该考虑为容器设置内部直接设置固定IP,因此对于上述方法用起来还是比较麻烦的,每次启动容器后,需要根据命名自动执行相关pipework命令,这时候如何保证服务发现,以及确保IP分配不冲突,对于某些依赖服务还需考虑提供恒定的IP。另外,在这种结构下,所有容器之间都在一个二层,容器间通信控制本身需要外部来维护控制。 docker commit是不会保存这种网络接口增加变化的。

在另一台主机上执行同样类似的操作过程,随后不同主机上的容器即可以相互通信:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/ #  route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.188.1   0.0.0.0         UG    0      0        0 eth1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.188.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:05  
          inet addr:172.17.0.5  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 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:648 (648.0 B)  TX bytes:0 (0.0 B)
 
eth1      Link encap:Ethernet  HWaddr DE:98:6D:59:BC:47  
          inet addr:192.168.188.199  Bcast:192.168.188.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:345 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21302 (20.8 KiB)  TX bytes:5012 (4.8 KiB)
 
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:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:448 (448.0 B)  TX bytes:448 (448.0 B)
 
/ # ping 192.168.188.189
PING 192.168.188.189 (192.168.188.189): 56 data bytes
64 bytes from 192.168.188.189: seq=0 ttl=64 time=0.654 ms
64 bytes from 192.168.188.189: seq=1 ttl=64 time=0.770 ms

容器目的地外网ip的通讯,数据包发给br0接口,br0接口在host中,再次查找主机路由表,将数据包路由出去。注意两台宿主机br0接口地址不一样,每个宿主机容器的网关指向本宿主机的br0的IP。 网络结构如下:

在整个上述配置中,所有配置都未写入文件,重启容器,重启主机相关配置都会丢失。对于容器可考虑结合自动化脚本在启动容器后执行相关pipework工作,而对于主机桥接网络,实际上建议配置具体的br0接口文件,将IP以及桥接的物理接口固定配置在文件里(类似编辑一个接口网络配置文件一样)
而如果不想通过pipework来做,则可以考虑新建br0后,修改docker daemon的缺省启动参数来使得容器run的时候默认绑定到这个br0 bridge网络上,同时将一个宿主物理网卡加入到该br0实现直接桥接到外部网络. 缺省启动文件 /usr/lib/systemd/system/docker.service 相关启动参数包含:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
[root@localhost sysconfig]# dockerd -h
Flag shorthand -h has been deprecated, please use --help
 
Usage:  dockerd COMMAND
 
A self-sufficient runtime for containers.
 
Options:
      --add-runtime runtime                   Register an additional OCI compatible runtime (default [])
      --api-cors-header string                Set CORS headers in the Engine API
      --authorization-plugin list             Authorization plugins to load
      --bip string                            Specify network bridge IP
  -b, --bridge string                         Attach containers to a network bridge
      --cgroup-parent string                  Set parent cgroup for all containers
      --cluster-advertise string              Address or interface name to advertise
      --cluster-store string                  URL of the distributed storage backend
      --cluster-store-opt map                 Set cluster store options (default map[])
      --config-file string                    Daemon configuration file (default "/etc/docker/daemon.json")
      --containerd string                     Path to containerd socket
      --cpu-rt-period int                     Limit the CPU real-time period in microseconds
      --cpu-rt-runtime int                    Limit the CPU real-time runtime in microseconds
      --data-root string                      Root directory of persistent Docker state (default "/var/lib/docker")
  -D, --debug                                 Enable debug mode
      --default-gateway ip                    Container default gateway IPv4 address
      --default-gateway-v6 ip                 Container default gateway IPv6 address
      --default-runtime string                Default OCI runtime for containers (default "runc")
      --default-shm-size bytes                Default shm size for containers (default 64MiB)
      --default-ulimit ulimit                 Default ulimits for containers (default [])
      --disable-legacy-registry               Disable contacting legacy registries
      --dns list                              DNS server to use
      --dns-opt list                          DNS options to use
      --dns-search list                       DNS search domains to use
      --exec-opt list                         Runtime execution options
      --exec-root string                      Root directory for execution state files (default "/var/run/docker")
      --experimental                          Enable experimental features
      --fixed-cidr string                     IPv4 subnet for fixed IPs
      --fixed-cidr-v6 string                  IPv6 subnet for fixed IPs
  -G, --group string                          Group for the unix socket (default "docker")
      --help                                  Print usage
  -H, --host list                             Daemon socket(s) to connect to
      --icc                                   Enable inter-container communication (default true)
      --init                                  Run an init in the container to forward signals and reap processes
      --init-path string                      Path to the docker-init binary
      --insecure-registry list                Enable insecure registry communication
      --ip ip                                 Default IP when binding container ports (default 0.0.0.0)
      --ip-forward                            Enable net.ipv4.ip_forward (default true)
      --ip-masq                               Enable IP masquerading (default true)
      --iptables                              Enable addition of iptables rules (default true)
      --ipv6                                  Enable IPv6 networking
      --label list                            Set key=value labels to the daemon
      --live-restore                          Enable live restore of docker when containers are still running
      --log-driver string                     Default driver for container logs (default "json-file")
  -l, --log-level string                      Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --log-opt map                           Default log driver options for containers (default map[])
      --max-concurrent-downloads int          Set the max concurrent downloads for each pull (default 3)
      --max-concurrent-uploads int            Set the max concurrent uploads for each push (default 5)
      --metrics-addr string                   Set default address and port to serve the metrics api on
      --mtu int                               Set the containers network MTU
      --oom-score-adjust int                  Set the oom_score_adj for the daemon (default -500)
  -p, --pidfile string                        Path to use for daemon PID file (default "/var/run/docker.pid")
      --raw-logs                              Full timestamps without ANSI coloring
      --registry-mirror list                  Preferred Docker registry mirror
      --seccomp-profile string                Path to seccomp profile
      --selinux-enabled                       Enable selinux support
      --shutdown-timeout int                  Set the default shutdown timeout (default 15)
  -s, --storage-driver string                 Storage driver to use
      --storage-opt list                      Storage driver options
      --swarm-default-advertise-addr string   Set default address or interface for swarm advertised address
      --tls                                   Use TLS; implied by --tlsverify
      --tlscacert string                      Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string                        Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string                         Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify                             Use TLS and verify the remote
      --userland-proxy                        Use userland proxy for loopback traffic (default true)
      --userland-proxy-path string            Path to the userland proxy binary
      --userns-remap string                   User/Group setting for user namespaces
  -v, --version                               Print version information and quit

注意:在centos7下,上述桥接后,还需要在主机iptables的FORWARD链中增加相关容许条目。例如:
iptables -I FORWARD 10 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[root@docker1 bin]# iptables -nL -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        
107K   67M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
  609  198K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0          
78306   35M INPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
75124   35M INPUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
75124   35M INPUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
   28  1276 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
75071   35M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
 
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        
29765 2443K DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    8   672 ACCEPT     all  --  *      br-2aeddaf04b59  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    2   168 DOCKER     all  --  *      br-2aeddaf04b59  0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     all  --  br-2aeddaf04b59 !br-2aeddaf04b59  0.0.0.0/0            0.0.0.0/0          
    2   168 ACCEPT     all  --  br-2aeddaf04b59 br-2aeddaf04b59  0.0.0.0/0            0.0.0.0/0          
32728   27M ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
  252 73164 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0          
25842 1685K ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0          
  219 71052 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0          
  314 45736 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
   14  1176 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0          
  459 93682 FORWARD_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  459 93682 FORWARD_IN_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  459 93682 FORWARD_IN_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  368 87370 FORWARD_OUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  368 87370 FORWARD_OUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
  368 87370 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT 1599 packets, 471K bytes)
pkts bytes target     prot opt in     out     source               destination        
69898   13M OUTPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain DOCKER (2 references)
pkts bytes target     prot opt in     out     source               destination        
   12   768 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.3           tcp dpt:80
 
Chain DOCKER-ISOLATION (1 references)
pkts bytes target     prot opt in     out     source               destination        
    0     0 DROP       all  --  docker0 br-2aeddaf04b59  0.0.0.0/0            0.0.0.0/0          
    0     0 DROP       all  --  br-2aeddaf04b59 docker0  0.0.0.0/0            0.0.0.0/0          
59613   29M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain FORWARD_IN_ZONES (1 references)
pkts bytes target     prot opt in     out     source               destination        
    0     0 FWDI_public  all  --  eno16777736 *       0.0.0.0/0            0.0.0.0/0           [goto]
  453 93298 FWDI_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]
 
Chain FORWARD_IN_ZONES_SOURCE (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FORWARD_OUT_ZONES (1 references)
pkts bytes target     prot opt in     out     source               destination        
    0     0 FWDO_public  all  --  *      eno16777736  0.0.0.0/0            0.0.0.0/0           [goto]
  368 87370 FWDO_public  all  --  *      +       0.0.0.0/0            0.0.0.0/0           [goto]
 
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FORWARD_direct (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDI_public (2 references)
pkts bytes target     prot opt in     out     source               destination        
  459 93682 FWDI_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  459 93682 FWDI_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  459 93682 FWDI_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
   91  6312 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain FWDI_public_allow (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDI_public_deny (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDI_public_log (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDO_public (2 references)
pkts bytes target     prot opt in     out     source               destination        
  368 87370 FWDO_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  368 87370 FWDO_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
  368 87370 FWDO_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain FWDO_public_allow (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDO_public_deny (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain FWDO_public_log (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain INPUT_ZONES (1 references)
pkts bytes target     prot opt in     out     source               destination        
56999   25M IN_public  all  --  eno16777736 *       0.0.0.0/0            0.0.0.0/0           [goto]
  378  104K IN_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]
 
Chain INPUT_ZONES_SOURCE (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain INPUT_direct (1 references)
pkts bytes target     prot opt in     out     source               destination        
3182  399K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain IN_public (2 references)
pkts bytes target     prot opt in     out     source               destination        
75124   35M IN_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
75124   35M IN_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
75124   35M IN_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    7   552 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0          
 
Chain IN_public_allow (1 references)
pkts bytes target     prot opt in     out     source               destination        
    4   256 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW
   14   892 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 ctstate NEW
 
Chain IN_public_deny (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain IN_public_log (1 references)
pkts bytes target     prot opt in     out     source               destination        
 
Chain OUTPUT_direct (1 references)
pkts bytes target     prot opt in     out     source               destination

 

  • 路由方式互联跨宿主机容器:

 

《《《见下一篇文章》》》

相关文章

  • DOCKER容器跨宿主机通信方法-(3):Openvswitch
  • docker容器跨宿主机通信方法(2):路由方式
  • Docker学习备忘2
  • 博客Docker化实践
  • DOCKER容器跨宿主机通信方法(4):Flannel-Vxlan
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: bridge docker 容器网络 桥接外部网络
最后更新:2017年06月26日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >
页面AI聊天助手
文章目录
  • Host网络方式:
  • 桥接外部网络方式:

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    irule gtm DNS docker api istio F5 k8s bigip envoy nginx openstack neutron flannel network
    最近评论
    汤姆 发布于 8 个月前(09月10日) 嗨,楼主,里面的json怎么下载啊,怎么收费啊?
    汤姆 发布于 8 个月前(09月09日) 大佬,kib的页面可以分享下吗?谢谢
    zhangsha 发布于 1 年前(05月12日) 资料发给我下,谢谢纳米同志!!!!lyx895@qq.com
    李成才 发布于 1 年前(01月02日) 麻烦了,谢谢大佬
    纳米 发布于 1 年前(01月02日) 你好。是的,因为以前下载系统插件在一次升级后将所有的下载生成信息全弄丢了。所以不少文件无法下载。DN...
    浏览次数
    • Downloads - 183,777 views
    • 联系我 - 118,966 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 116,516 views
    • Github - 103,665 views
    • F5常见log日志解释 - 79,774 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 74,627 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 74,320 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 67,770 views
    • 关于本站 - 60,915 views
    • 这篇文档您是否感兴趣 - 55,496 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号