Docker 基础网络(host&none&bridge)

Docker 基础网络(host&none&bridge)_第1张图片
4858789-4f3f6c700333fe26.jpg

前言

今天开始我们学习docker网络:
docker安装时便会为我们创建三种网络模式:host、none、bridge。
查看docker网络

[root@cgls ~] # docker network ls

host网络

容器创建时通过 --network=host 指定使用宿主机网络,此时容器与宿主机共享网络栈,容器内的网络配置和宿主机完全一样。

none网络

容器创建时通过 --network=host 指定容器不创建任何网卡,此时容器里只有lo。

bridge网络

容器创建时不指定--network,那么容器默认使用bridge网络。bridge网络是由docker创建的linux bridge -- docker0提供。
查看网桥

[root@cgls~]# brctl show
image

查看网桥网关

[root@cgls~]# ifconfig | grep docker0
Docker 基础网络(host&none&bridge)_第2张图片
image

由于docker0 网桥是安装docker时就默认创建的,我们无法在创建容器的时候指定容器ip,只能由docker0自动分配ip。

如果想要创建容器的时候指定ip,需要自己再建一个bridge网络。

三种网络使用场景:

上面已经介绍了三种docker自带的网络,我们一同设想一下这三种网络适用的场景。

host网络:

选用host网络的容器,其网络栈和宿主机一摸一样,它的优势在于网络性能强于其他网络模式。如果对网络传输有很大需求可以选用host网络。

none网络:

none没有网卡的网络,能做到更加封闭,可以更好的保护重要数据,所以最适合对安全性要求高并且不需要联网的容器。

bridge网络:

bridge网络是通过容器上虚拟网络设备和网桥上虚拟网络设备组成一组veth(相当于虚拟的网线)进行连接的,然后通过docker0从172.17.0.0/16分配ip给容器使用。显而易见bridge网络适用于日常需要连接网络的容器,例如http容器、web容器...

你可能感兴趣的:(Docker 基础网络(host&none&bridge))