Docker 网络基于Linux 提供的网络技术支持,本文会分析docker网络模型和具体的实现方法
docker 使用基于软件实现的bridge运行连接到同一个bridge的容器之间进行通信,隔离没有与对应bridge连接的网络,安装docker后会默认创建一个docker0
bridge,而默认启动的容器没有知道--network
的情况下都连接到docker0
上 自定义的bridge
和默认的bridge
会有些不同
连接在同一个用户定义的bridge
上的容器默认所有的端口都是互相暴漏的,但并不对外暴露端口,容器的交互会更加容易
用户定义的bridge
会在容器之间提供自动的DNS功能,
连接在用户自定义bridge
上的容器可以随时连接或移除网络接口,而默认的bridge
需要停掉容器
用户定义的bridge
是可配置的
Docker bridge默认基于linux的 VETH
实现
连接在
host
网络上的容器完全使用宿主主机的网络栈,容器开启的端口会直接在宿主主机上暴露
连接在
host
网络上的容器完全使用宿主主机的网络栈