Docker 网络模式

Docker 网络模式之 Bridge、Host、none、container

网络模式参数说明
host模式–net=host容器和宿主机共享Network namespace
container模式–net={id}容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Network namespace
none模式–net=none容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair和网桥连接,配置IP等
bridge模式–net=bridge默认为该模式,通过 -p 指定端口映射

Bridge 模式

在这里插入图片描述

Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为 docker0。它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

Docker 默认指定了 docker0 接口的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

Docker 使用 Linux 桥接,在宿主机虚拟一个 Docker 容器网桥 (docker0) 。当 Docker 启动一个容器时会根据 Docker 网桥的网段分配给容器一个 IP 地址,称为 Container-IP,同时 Docker 网桥是每个容器的默认网关。

因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。

在宿主机使用 ifconfig 命令,就可以看到 docker0 和自己创建的 networketh0eth1eth2……(代表网卡一,网卡二,网卡三……),lo 代表 127.0.0.1,即 localhostinet addr 用来表示网卡的 IP 地址。

网桥 docker0 创建一对对等虚拟设备接口,一个叫 veth,另一个叫 eth0,成对匹配。

Host 模式

在这里插入图片描述

直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行 NAT 转换。容器将不会获得一个独立的 Network Namespace, 而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡而是使用宿主机的 IP 和端口。

none 模式

none 模式下,并不为 Docker 容器进行任何网络配置。 也就是说,这个 Docker 容器没有网卡、IP、路由等信息,只有一个 lo,需要我们自己为 Docker 容器添加网卡、配置 IP 等。

container 模式

在这里插入图片描述

新建的容器和已经存在的一个容器共享一个网络 ip 配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值