Docker

前言

Docker 为我们提供了多种类型的网络模式,我们可以根据自己的需求使用系统默认的网络或者创建自己的网络。

Docker 默认的网络

在我们安装完 Docker enginee 后, 会自动生成3种默认的网络模式。 我们可以运行命令查看:

$ docker network ls

bridge - 使用Docker 0 网络, containers只能在一个Host上面进行通信。在创建Container时,如果不特殊指定网络,会默认使用bridge。创建在bridge网络上面的container里面,我们在container的host文件(# cat /etc/hosts)可以看到对用IP信息

root@0cb243cd1293:/# cat /etc/hosts

172.17.0.2 3386a527aa08

127.0.0.1 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

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 网络通信。

 

An overlay network with an external key-value store

由于 Swarm 使用了内置的overlay网络“docker_gwbridge”, 所以当我们要在不适用swarm mode 且要求在不同的container之间通信时,就需要用到这个网络模式。

由于使用这种模式必须要提供 “key-value stores”支持,所以配置起来会比较发杂。我们先看一下她的拓扑图

原文地址:https://www.cnblogs.com/happyyftk/p/7154405.html