Docker的那些事儿

Docker的那些事儿—none和host网络(21)

2018-03-14  本文已影响4人  sjyu_eadd

上一篇:Docker的那些事儿—容器生命周期管理(20)


从本节开始,开启网络部分学习。

none网络

none网络意味着没有网络,所创建的容器只有lo,没有其他的网卡。容器创建时可以使用--network=none指定使用none网络。

不要觉得none网络没有什么用处。貌似最简单的网络往往又是最复杂的。none网络没有办法联网,封闭的网络能很好的保证容器的安全性,为用户提供了最大的灵活性,使得用户可以创建并使用自己的复杂网络。

host网络

host网络意味着容器与宿主机共用一套网络,也就是说容器使用的网络就是宿主机的网络。使用--network=host指定使用host网络。

宿主机的网络栈如下:

可以看到容器内的网络栈和宿主机一模一样,甚至连容器的主机名都和宿主机一样。

另外,容器内部服务的端口也可以使用宿主机的端口。例如:httpd服务80端口

我们之前都是这样启动:docker run -itd -p 8000:80 --name my_web1 httpd

httpd服务的80端口映射到宿主机的8000端口

而如果使用host网络就可以这样:docker run -itd --network=host --name my_web2 httpd

httpd服务直接使用宿主机的80端口。因此host网络具有如下优缺点:

优点:由于复用了宿主机网络,网络性能好,使得数据的传输效率也高;

缺点:宿主机端口可能存在冲突;破坏了容器的网络隔离性。

下一章节我们进入Docker 网络部分学习


下一篇:Docker的那些事儿—bridge网络(22)


上一篇 下一篇

猜你喜欢

热点阅读