Docker 为咱们提供了多种类型的网络模式,咱们能够根据本身的需求使用系统默认的网络或者建立本身的网络。php
在咱们安装完 Docker enginee 后, 会自动生成3种默认的网络模式。 咱们能够运行命令查看:node
$ docker network ls
docker
bridge - 使用Docker 0 网络, containers只能在一个Host上面进行通讯。在建立Container时,若是不特殊指定网络,会默认使用bridge。建立在bridge网络上面的container里面,咱们在container的host文件(# cat /etc/hosts
)能够看到对用IP信息网络
root@0cb243cd1293:/# cat /etc/hosts
oop
172.17.0.2 3386a527aa08
spa
127.0.0.1 localhost
code
::1 localhost ip6-localhost ip6-loopback
router
fe00::0 ip6-localnet
blog
ff00::0 ip6-mcastprefix
ip
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
none - ?? 貌似没啥用啊
host - 基于本机的Docker host, 貌似没啥用。
bridge 网络模式拓扑图, 因为bridge自己不可以访问外部或被外部访问,咱们能够暴漏端口到外部以实现通讯。可是bridge模式要求全部container必需要一个Docker host里
docker_gwbridge
网络这个网络也是Docker engine 本身生成的,只不过是当咱们运行Docker swarm 之后 (建立网络+添加节点),自动生成 overlay 网络,用于为swarm 提供 overlay 网络通讯。
因为 Swarm 使用了内置的overlay网络“docker_gwbridge
”, 因此当咱们要在不适用swarm mode 且要求在不一样的container之间通讯时,就须要用到这个网络模式。
因为使用这种模式必需要提供 “key-value stores”支持,因此配置起来会比较发杂。咱们先看一下她的拓扑图