Docker 网络

Docker 网络基于Linux 提供的网络技术支持,本文会分析docker网络模型和具体的实现方法

Bridge

docker 使用基于软件实现的bridge运行连接到同一个bridge的容器之间进行通信,隔离没有与对应bridge连接的网络,安装docker后会默认创建一个docker0 bridge,而默认启动的容器没有知道--network的情况下都连接到docker0上 自定义的bridge和默认的bridge会有些不同

Docker bridge默认基于linux的 VETH 实现

http://smark.freecoop.net/techstack/network/img/docker-br-evd.png

Host

连接在

host

网络上的容器完全使用宿主主机的网络栈,容器开启的端口会直接在宿主主机上暴露

http://smark.freecoop.net/techstack/network/img/docker-host.png

连接在

host

网络上的容器完全使用宿主主机的网络栈

http://smark.freecoop.net/techstack/network/img/docker-host-evd.png

Macvlan