docker网络简介
bridge: 桥接 【docker默认】
docker network --help
docker每生成一个容器,就分配给容器一个ip,同事在宿主机增加一对网卡,即docker用的虚拟接口协议,通过evth-pair,充当一个桥梁,连接各种虚拟设备,默认通过docker0网关来通信的,采用桥接模式
Docker容器 之间网络是互通的8: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 02:42:45:be:08:ce 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:45ff:febe:8ce/64 scope link valid_lft forever preferred_lft forever 155146: veth93406a5@if155145: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP link/ether 4e:c7:49:8e:ed:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::4cc7:49ff:fe8e:ede6/64 scope link valid_lft forever preferred_lft forever
2.容器之间通过容器名通信--link【一般不使用】
启动两个容器,如test01,test02
下面这种方式就是通过容器名使test01 能够ping通test02
docker -d run --name test01 --link test02 nginx docker exec -it test01 ping test02
但如果用test02去访问test01会出现不同,因为link的本质是做了服务名与ip的映射且是单向的,所以不通,除非test02-->test01也配上--link,本质是向hosts中增加映射
通过如下命令可查到
docker network inspect 网络编号
3.自定义网络
默认启动容器,有参数--net bridge,这个就是docker0
docker run -d -P --name tomcat01 tomcat 等同于 docker run -d -P --name tomcat01 --net bridge tomcat
docker0的特点:默认,域名不能直接访问,可通过--link打通,自定义是自动开通的
docker network create --help
docker network create --driver bridge --subnet 192.168.0.0/16 --gatway 192.168.0.1 myfirstnet
--driver 指定网络模式 --subnet 指定子网掩码 --gatway 指定网关
查看创建的网络
docker network inspect myfirstnet
使用自己创建的网络
docker run -d -P --name test001 --net myfirstnet
4.不同的子网如何互联,
建立自己的网络保证不同的服务处于不同的网络中,保证网络安全性
redis集群 net1 192.168.1.0 mysql集群 net2 192.168.2.0 原理:通过给容器设置两个ip,相当于向两个不同的网络各申请一个ipdocker network connect [OPTIONS] NETWORK CONTAINER [flags]
如使容器redis01与myslq01通信
docker network connect net2 redis01
上面的本质是将redis01在net2中申请了一个ip
docker network net2 inspect
查看更多关于Docker_学习笔记系列之网络的详细内容...