centos7下安装docker(12docker网络)

docker 网络荣覆盖范围可分为:单个host上的容器网络跨多个host的网络

docker 安装时会自动在host上创建三个网络,我们可以使用docker network ls查看到

centos7下安装docker(12docker网络)

1.none网络

在这个网络下只有容器的lo网卡,在创建容器时可以使用--network=none指定使用none网络

正常不指定网络的情况下:

centos7下安装docker(12docker网络)

下面是指定网络为none的情况下:

centos7下安装docker(12docker网络)

一般来讲,这个封闭的网络有什么用处呢?

可用于一些安全性较高的并且不需要联网的应用可以使用none网络,比如:某个容器唯一用途就是生成随机密码,就可以放到none网络中避免密码呗窃取;但是大部分容器是需要网络的

2.host网络

连接到host网络的容器共享docker host的网络栈,容器的网络配置与host完全一致,可以通过--network=host指定host网络

centos7下安装docker(12docker网络)

centos7下安装docker(12docker网络)

centos7下安装docker(12docker网络)

在容器中可以看到host的所有网卡,并且连hostname也是host的

host网络的使用场景是什么呢?

host网络的最大好处就是:性能;

如果容器对网络传输效率要求较高,则可以选择host网络。

但是host网络也有缺点:灵活性不高,比如:要考虑多口灵活性的问题,docker host上已经使用的端口容器就不能使用了

doker host另一个用途就是:让容器可以直接配置host网络,比如:一些跨host的网络解决方案,本身也是以容器运行的,这些方案需要对网络进行配置,比如,iptables。

疑问:这一节试验中我全部用的是busybox的镜像,但是为啥我用centos镜像运行容器,不能用ifconfig等网络命令,什么原因呢?