容器网络
一、为什么要学习容器网络?
如果要使用Docker来搭建redis集群或者别的集群需要制定Docker容器的IP地址,但是每次容器重启都会修改容器的IP地址,所以需要了解如何设置容器的网络。
二、Docker默认网络
Docker安装后,会默认创建三种网络类型,可使用如下命令来查看:
在启动容器时使用
--network bridge
制定网络类型,bridge
为桥接网络默认情况下启动的Docker容器,都是使用briage,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就会导致重启时,Docker的IP地址就变了。
三、Docker网络模型
从上面的网络模型可以看出,容器从原理上是可以与宿主机乃至外界的其他机器通信的。同一宿主机上,容器之间都是连接到Docker0这个网桥上的,它可以作为虚拟交换机使容器可以相互通信。然而,由于宿主机的IP地址与容器的IP地址均不在同一网段,不足以使宿主机以外的网络主动发现容器的存在。为了使外界可以访问容器中的进程,Docker采用率端口绑定的方式,也就是通过iptables的NAT,将宿主机上的端口号流量转发到容器内的端口上。 在宿主机上,可以通过iptables -t nat -L -n,查到一条DNAT规则: briage模式的容器与外界通信时,必定会占用宿主机的端口,从而与宿主机竞争端口资源,对宿主机端口的管理会是一个比较大的问题。同时,由于容器与外界通信是基于三层以上iptables NAT,性能和消耗上的耗损是可以预见的
四、自定义容器网络
因为默认的网络不能指定固定的地址,所以我们将创建自定义网络,并指定网段:192.168.1.0/24并命名为mynetwork,指令如下:
###五、使用自定义网络