开篇:从"在我电脑上能跑"到"在哪都能跑"
每个开发者都经历过这样的噩梦:代码在自己电脑上跑得好好的,部署到测试环境就挂了。原因无非是运行时版本不同、依赖缺失、配置差异。Docker 的出现,本质上就是为了解决这个问题 -- 把应用和它的整个运行环境一起打包,像集装箱一样标准化交付。
要理解 Docker,我们先快速回顾虚拟化技术的演进。
虚拟化的演进
最早的隔离手段是 Unix 的 chroot,它可以改变进程看到的根目录,让进程"以为"自己在一个独立的文件系统里。但 chroot 只隔离了文件系统,进程之间仍然共享 CPU、内存和网络。
大约 10 分钟