Docker-None & Host 网络

本节介绍None&Host网络。

1.前言

点击此处回到docker系列文章目录

前面我们介绍了bridge network,本小节继续介绍none和host。这两个比较简单,也不太常用。安装Docker时自动创建了三个网络:

[root@docker1 ~]# docker network ls
NETWORK ID        NAME         DRIVER       SCOPE
c1bb643c9c5a      bridge       bridge       local
59364623cee2      host         host         local
fb704391fb47      none         null         local

2.None网络

使用none网络的容器,只有一个lo网卡,路由表为空。也就是说这类容器是无法与其他容器通信的,是完全被隔离的容器。
它的用途是执行主机范围内的计算,还可以被其它network plugin(calico, weave)用来禁用docker自身的网络,进而提供network plugin的network stack。
使用none网络创建一个容器,docker run -it -d --network=none --name=testnone busybox
然后查看网卡:

[root@docker1 ~]# docker exec -it testnone sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever

可以发现该容器内只有一个lo网卡,路由表为空。

3.Host网络

3.1 介绍

用nginx镜像创建一个容器,使用host网络。命令:docker run -it -d --network=host --name=testhost nginx
进入容器,执行ip a或ip r,看到的结果和在host直接执行的结果一样。
测试:在Host上执行curl 127.0.0.1:80或curl 192.168.0.11:80,返回nginx欢迎信息。但是在其他机器上是访问不通的。
注意:

  1. 使用host网络的容器,不会被分配IP地址,因为它直接使用Host的IP地址;
  2. 使用host网络,publish port功能无效。

4.小结

  • 本文介绍了除bridge外的另外两种网络,none和host,了解即可。

下一节,我们介绍docker原生的overlay网络。点击此处回到docker系列文章目录

 

作者原创,转载请声明出处!


本人微信公众号同步更新云计算、容器、网络、编程等文章,欢迎关注!

 

Tags: