Docker-None & Host 网络
本节介绍None&Host网络。
1.前言
前面我们介绍了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欢迎信息。但是在其他机器上是访问不通的。
注意:
- 使用host网络的容器,不会被分配IP地址,因为它直接使用Host的IP地址;
- 使用host网络,publish port功能无效。
4.小结
- 本文介绍了除bridge外的另外两种网络,none和host,了解即可。
下一节,我们介绍docker原生的overlay网络。点击此处回到docker系列文章目录。
作者原创,转载请声明出处!
本人微信公众号同步更新云计算、容器、网络、编程等文章,欢迎关注!