网络命名空间
ip netns help
ip netns add test
ip netns list
ip netns del test
在/var/run/netns/
docker network ls
[root@foundation11 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
11ed1bf36d38 bridge bridge local
9f4f6dbc18ca host host local
8c7205049a29 none null local
docker run -it --name vm1 --net host rhel7
docker run -it --name vm2 --net bridge rhel7
docker run -it --name vm3 --net none rhel7 禁用网络适合加密机密容器
下面使用桥接bridge
自己从网上下好ubuntu镜像tar
docker network create --driver bridge my_net1
docker network inspect my_net1
docker network create --driver bridge --subnet 172.20.0.0/24 --gateway 172.20.0.1 my_net2
docker设计理念是隔离网络
docker run -it --name vm1 --net my_net1 ubuntu
docker run -it --name vm2 --net my_net2 --ip 172.20.0.10 ubuntu
这个后面的--ip是用户自定义 需要在自定义subnet后的子网才能使用
docker network connect my_net2 vm1
这样的话 vm2的172.20.0.10 可以通vm1 172.20.0.2,即vm1 vm2 通过172.20.0.10 2互通
vm1
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
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
26: eth1@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.20.0.2/24 brd 172.20.0.255 scope global eth1
valid_lft forever preferred_lft forever
vm2
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
28: eth0@if29: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:14:00:0a brd ff:ff:ff:ff:ff:ff
inet 172.20.0.10/24 brd 172.20.0.255 scope global eth0
valid_lft forever preferred_lft forever
跨主机通信
这里用2台虚拟机通信
都要两块网卡 eth0 1
yum install bash-* -y
进入混杂模式 promisc
ip link set eth0 promisc on
ip link set up eth1
ip link set eth1 promisc on
docker load -i ubuntu.tar
server1 172.25.11.1
docker network create -d macvlan --subnet 172.25.1.0/24 --gateway 172.25.1.1 -o parent=eth0 mac_net1
docker run -it --name vm1 --net mac_net1 --ip 172.25.1.10 ubuntu
docker network create -d macvlan --subnet 172.25.2.0/24 --gateway 172.25.2.1 -o parent=eth1 mac_net2
docker run -it --name vm2 --net mac_net2 --ip 172.25.2.10 ubuntu
docker network create -d macvlan --subnet 172.25.3.0/24 --gateway 172.25.3.1 -o parent=eth1.1 mac_net3
docker run -it --name vm3 --net mac_net3 --ip 172.25.3.10 ubuntu
server2 172.25.11.2
docker network create -d macvlan --subnet 172.25.1.0/24 --gateway 172.25.1.1 -o parent=eth0 mac_net1
docker run -it --name vm1 --net mac_net1 --ip 172.25.1.11 ubuntu
docker network create -d macvlan --subnet 172.25.2.0/24 --gateway 172.25.2.1 -o parent=eth1 mac_net2
docker run -it --name vm2 --net mac_net2 --ip 172.25.2.11 ubuntu
docker network create -d macvlan --subnet 172.25.3.0/24 --gateway 172.25.3.1 -o parent=eth1.1 mac_net3
docker run -it --name vm3 --net mac_net3 --ip 172.25.3.11 ubuntu
docker exec -it vm3 bash
root@c0adcf235354:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
9: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether 02:42:ac:19:03:0b brd ff:ff:ff:ff:ff:ff
inet 172.25.3.11/24 brd 172.25.3.255 scope global eth0
valid_lft forever preferred_lft forever
root@c0adcf235354:/# ping 172.25.3.11
PING 172.25.3.11 (172.25.3.11) 56(84) bytes of data.
64 bytes from 172.25.3.11: icmp_seq=1 ttl=64 time=0.031 ms