docker - 网络模式详解
一、分类
docker 大致分为4种网络模式
- 桥接网络:bridge
- 默认桥接模式
- 自定义桥接模式<比默认桥接模式多dns解析功能>
- 主机网络:host
- 无网络:none
二、使用
2.1 查看
查看网络列表

查看详情

2.2 创建
自定义桥接网络
- 新建网络会生成一个新的
网桥设备,类似 docker0 - 自定义网桥模式的网络支持使用
容器的主机名或容器名进行通信,默认的网桥模式不支持 - 容器使用的子网是在新建网络时指定的,容器挂在该网络下会自动应用该网络的配置
- 容器的IP是根据使用网络的子网分配的,子网是在新建网络时指定的

使用macvlan
- 首先
macvlan,就是在网卡上虚拟网卡,模拟不同ip,不同mac的场景进行通信,这样在二层网络中,就都可以通过mac地址进行通信,避免数据包的封装。 - docker 的 macvlan 只支持 bridge 模式(macvlan有四种模式,其中一种是bridge,和这章一直说的桥接bridge不是一回事)
- 一块物理网卡只能绑定一个 macvlan 的网络
- 网卡必须开启混杂模式

2.3 删除

2.4 绑定和解除

三、模式说明
3.1 桥接模式
创建逻辑

-
创建主机后,生成
lo和etho两个网卡设备(注意序号)

-
安装并启动 docker 后,创建
docker0网卡(注意序号)

-
通过 docker 创建容器后,容器内部创建网卡设备
eth0,同时 docker 会在 docker0 下建立虚拟网络设备veth(从宿主机看只能看到veth),两块网卡设备后边的@ifx分别声明了对方(x是对方的序号),意思是这两块网卡是互联的。只要启动容器,eth和veth就是成对出现的,docker0就是我们常说的网桥设备

-
我们启动两个容器来验证联通性
优缺点
-
默认的桥接模式,是无法通过主机名和容器名直接进行互相访问的,但是自定义的桥接模式可以


-
无论是默认的桥接模式还是自定义的桥接模式,外部访问的时候都需要以端口映射的方式暴露端口
-
实际上是通过nat后才能通信,所以在性能上没有主机网络好
3.2 主机模式
- 这个模式无法自定义创建,创建容器时也无法指定端口映射
- 由于不需要处理数据包,性能最好
- 容器在这个网络模式下,共享宿主机的端口,需要考虑端口冲突的问题
- 启动容器时使用
--network host指定

3.3 无网络
- 创建容器时通过
--network none指定 - 进入容器后能发现只有本地回环网卡,无法访问任何网络,纯粹的单机

欢迎加 1092845214 交流沟通呀~
本文来自博客园,作者:难德糊涂,转载请注明原文链接:https://www.cnblogs.com/yangkaiyue/p/18256983

docker 的几种网络模式,创建使用和删除,
浙公网安备 33010602011771号