linux内核分析:docker与隔离

docker容器

容器实现封闭的环境主要要靠两种技术,一种是看起来是隔离的技术,称为 namespace(命名空间)。在每个 namespace 中的应用看到的,都是不同的 IP 地址、用户空间、进程 ID 等。另一种是用起来是隔离的技术,称为 cgroup(网络资源限制),即明明整台机器有很多的 CPU、内存,但是一个应用只能用其中的一部分。

所谓镜像(Image),就是在你焊好集装箱的那一刻,将集装箱的状态保存下来。就像孙悟空说:“定!”,集装箱里的状态就被“定”在了那一刻,然后这一刻的状态会被保存成一系列文件。无论在哪里运行这个镜像,都能完整地还原当时的情况。

好处

第一就是持续集成。

想象一下,你写了一个程序,然后把它打成了上面一样的镜像。你在本地一运行 docker run 就把他运行起来了。接下来,你交给测试的就不是一个“程序包 + 配置 + 手册”了,而是一个容器镜像了。测试小伙伴同样通过 docker run 也就运行起来了,不存在“你这里跑的起来,他那里跑不起来的情况”。测试完了再上生产,交给运维的小伙伴也是这样一个镜像,同样的运行同样的顺畅。这种模式使得软件的交付效率大大提高,可以一天发布多次。

第二就是弹性伸缩。

想象一下,你写了一个程序,平时用的人少,只需要 10 个副本就能够扛住了。突然有一天,要做促销,需要 100 个副本,另外 90 台机器创建出来相对比较容易,用任何一个云都可以做到,但是里面 90 个副本的应用如何部署呢&#

你可能感兴趣的:(linux内核,linux,docker,运维)