1、网卡有namespace的概念,不同的俩个namesp之间的网卡不能直接通信
为了俩个namespace的网卡相互通信,可以通过veth pair(一对)来实现.不同容器之间,便是通过veth pair实现的
2、docker的网络模式有3种
bridge 桥接,同一bridge的网络可以互通
host 直接用宿主机的网卡,自己不再创建网卡
none 只有127.0.0.1,不可与外界连通
3、通过link方法可实现夸网桥.
docker run -d --name demo--link tomcat2:alias --memory 500M tomcat
查看容器 /etc/hosts ,可发现,docker已经将host对应关系加入文件当中,不推荐,多个网络需要一个一个配置
4、docker创建容器时,默认创建docker0虚拟网桥;
也可以添加net-work,添加新的网桥,通过net-work创建的网桥,同一网桥的容器可以直接通过容器名ping通
不同网桥,不能直接访问,通过将不同容器添加到相同net-work,可实现夸网桥连接
命令:
docker network create [--subnet ip/子掩码] test-net #创建network,可通过--subnet指定网段
docker network rm test-net #删除network
docker network inspect test-net #查看network
docker network ls #网桥列表
docker network connect test-net tomcat1 #将已存在的容器添加到网桥
docker run --name demo -d --network test-net --network-alias netAlias --p ip tomcat #加入test-net启动容器,如果指定ip,需要为network的网段范围
5、一般一个类型应用,建一个bridge,如mysql集群,创建一个bridge,tomcat集群再创建一个