Docker 网络模型
1.查看网络
docker network ls 查看docker 网络
例子
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[root@dn01 mnt]# docker network ls NETWORK ID NAME DRIVER SCOPE 74890e832660 bridge bridge local 68f5c4d900b3 host host local 67dd10e7f0aa none null local
docker network create 网络名称
例子
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[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
创建docker 容器并指定网络
docker run -it --net=网络模式 镜像
例子
指定bridge网络
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[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 / #
指定host 网络
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[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 / #
指定none 网络
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[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 / #
指定到自定义的网络
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[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 / #
不同的容器可以共用同一个网络命名空间 加入选项--net=container:name/id
例子:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
已经启动的容器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 / #