一 docker 网络模式
docker的镜像是令人称道的地方,但网络功能还是相对薄弱的
部分。
docker安装后会自动创建3种网络:bridge、host、none
[root@server1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
8bf13644a960 bridge bridge local
44f7099d50ae harbor_harbor bridge local
7ff6ebf99dc6 harbor_harbor-chartmuseum bridge local
b05df65cf9fa host host local
e75da44ef3a1 my_net bridge local
50fed3087117 none null local
二 基本网络配置
1 bridge网络
docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器
会自动桥接到这个接口
[root@server1 ~]# ip addr show docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:3c:21:90:38 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:3cff:fe21:9038/64 scope link
valid_lft forever preferred_lft forever
[root@server1 ~]# brctl show
bridge name bridge id STP enabled interfaces
br-44f7099d50ae 8000.024242f0f9b9 no
br-7ff6ebf99dc6 8000.02422936fd19 no
br-e75da44ef3a1 8000.0242c8ff76f0 no veth93e5927
docker0 8000.02423c219038 no veth3391af0
vethda0f3ff
bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是
不可见的,但容器通过宿主机的NAT规则后可以访问外网。
2 host网络模式
host网络模式需要在容器创建时指定--network host
host模式可以让容器共享宿主机网络栈,这样的好处是外部主
机与容器直接通信,但是容器的网络缺少隔离性。
[root@server1 ~]# docker run -it --network host busybox
/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 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 pr