Docker 网络模型

1.查看网络

docker network ls  查看docker 网络 

  例子

[root@dn01 mnt]# docker network ls
NETWORK ID NAME DRIVER SCOPE
74890e832660 bridge bridge local
68f5c4d900b3 host host local
67dd10e7f0aa none null local
View Code

docker network create 网络名称

  例子

[root@dn01 mnt]# docker network create test_net
5fa6566af44d53aebde601c0eaa9ae369ac7b1ff8961f27acc0dcf0d96dbd5f8
[root@dn01 mnt]# docker network ls
NETWORK ID NAME DRIVER SCOPE
74890e832660 bridge bridge local
68f5c4d900b3 host host local
67dd10e7f0aa none null local
5fa6566af44d test_net bridge local
View Code

创建docker 容器并指定网络

docker run -it --net=网络模式  镜像

  例子

指定bridge网络

[root@dn01 mnt]# docker run -it --net=bridge busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
ee153a04d683: Pull complete 
Digest: sha256:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70
Status: Downloaded newer image for busybox:latest
/ # ip a
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
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
link/ether 02:42:ac:11:00:05 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.5/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
View Code

指定host 网络

[root@dn01 mnt]# docker run -it --net=host --name bs2 busybox
/ # ip a
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 preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:0c:29:9e:37:06 brd ff:ff:ff:ff:ff:ff
    inet 10.10.100.30/24 brd 10.10.100.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::389d:e340:ea17:3a30/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
    link/ether 02:42:a0:a3:45:93 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:a0ff:fea3:4593/64 scope link 
       valid_lft forever preferred_lft forever
5: veth1dc7bd0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master docker0 
    link/ether 2e:58:f0:29:7a:3c brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2c58:f0ff:fe29:7a3c/64 scope link 
       valid_lft forever preferred_lft forever
7: veth29b326b@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master docker0 
    link/ether 06:cd:07:fb:fb:87 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4cd:7ff:fefb:fb87/64 scope link 
       valid_lft forever preferred_lft forever
9: veth1460792@if8: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master docker0 
    link/ether 3e:fe:6a:b1:c0:0f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3cfe:6aff:feb1:c00f/64 scope link 
       valid_lft forever preferred_lft forever
10: br-5fa6566af44d: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue 
    link/ether 02:42:6d:2d:ed:84 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-5fa6566af44d
       valid_lft forever preferred_lft forever
/ # 
View Code

指定none 网络

[root@dn01 mnt]# docker run -it --net=none --name bs3 busybox
/ # ip a
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
/ # 
View Code

指定到自定义的网络

[root@dn01 mnt]# docker run -it --net=test_net --name bs4 busybox
/ # ip a
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
15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
View Code

不同的容器可以共用同一个网络命名空间 加入选项--net=container:name/id

  例子:

已经启动的容器1,使用了默认的网络模式

[root@dn01 mnt]# docker run -it --name bs6 busybox
/ # ip a
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
19: eth0@if20: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
link/ether 02:42:ac:11:00:05 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.5/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #

在启动容器2时指定网络模式为容器1的,两个容器共用同一个网络命名空间

查看IP可以看到两者的网络信息是一样的

[root@dn01 ~]# docker run -it --net container:bs6 --name bs7 busybox
/ # ip a
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
19: eth0@if20: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
link/ether 02:42:ac:11:00:05 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.5/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
View Code

 

posted @ 2019-09-01 14:52  彦祚  阅读(91)  评论(0编辑  收藏  举报