如果说虚拟机是买公寓,容器则相当于合租,有一定的隔离,但是隔离性没有那么好。云计算解决了基础资源层的弹性伸缩,却没有解决PaaS层应用随基础资源层弹性伸缩而带来的批量、快速部署问题。于是,容器应运而生。
容器就是Container,而Container的另一个意思是集装箱。其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。

在没有集装箱的时代,假设要将货物从A运到B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,弄得乱七八糟,然后还要再搬上船重新整齐摆好。因此在没有集装箱的时候,每次换船,船员们都要在岸上待几天才能干完活。
有了尺寸全部都一样的集装箱以后,可以把所有的货物都打包在一起,所以每次换船的时候,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不用耗费很长时间了。这是集装箱的“打包”“标准”两大特点在生活中的应用。

那么容器如何对应用打包呢?
学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。
封闭的环境主要使用了两种技术,一种是看起来是隔离的技术,称为namespace
本文深入探讨了容器网络技术,通过比喻解释了容器与虚拟机的区别,强调了容器的隔离性和标准化。文章介绍了命名空间(namespace)和cgroup这两种关键隔离技术,阐述了如何利用namespace实现网络隔离和配置路由器,并通过cgroup限制和隔离进程资源。此外,还讲解了容器如何融入物理网络,包括Docker的NAT模式、端口映射和容器间通信。文章以思考题结束,鼓励读者深入思考容器网络的挑战和解决方案。
订阅专栏 解锁全文

558

被折叠的 条评论
为什么被折叠?



