目录
🦐博客主页:大虾好吃吗的博客
🦐专栏地址:云原生专栏
根据前面的学习,已经对docker有了一些简单的概念。这里在啰嗦一句,容器是一个独立的环境,可以理解为一个小型的linux系统(但不要把它当真正的系统),而docker的网络分为三种分别为bridge、host、none。
bridge:默认网络,可以ping通外网,但是外网无法访问内网。
host:跟本地主机host使用的同一个网络。
none:没有网络,挂载网络下的容器除了lo,没有其他网卡。
查看docker网络
docker安装时会自动在网络中创建三个网络,通过下面命令查看,默认网络是bridge。
[root@doc11 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
7d96a5075951 bridge bridge local
32cea9efbc61 host host local
4341e5f3526d none null local
bridge网络
docker安装的时候会创建一个名为docker0的linux bridge。如果不指定network,创建容器默认都挂在docker0上。
[root@doc11 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242c661a50d no
当docker0上没有任何网络设备,我们创建一个容器看看有什么变化。这里以httpd为例,没有镜像的话使用docker pull httpd下载一个。
[root@doc11 ~]# docker run -d httpd
dbd6e608e12332df931f8b010e8ea0c2404856d06b24c500bbf1bd551e590a70
[root@doc11 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242c661a50d no vethd3c5074
通过上面的命令可以看到,一个新的网络接口vethd3c5074被挂到了docker0上,vethd3c5074就是新创建容器的虚拟网卡。
none网络
我们看一下none网络,它就是一个完全隔离的网络。对于安全性要求高且不需要联网的应用可以使用none网络,比如某个容器的唯一用途就是生成随机密码,就可以放到none网络中避免密码被窃取。