我开始了解Docker,据我所知,docker容器运行在安装容器的默认Linux dist上 - 在我的例子中,它是一个带有docker工具箱的Mac OS X轻量级dist。
那么为什么我看到很多Docker文件实际上在容器内部安装了一个distrib,这是否会破坏保持光线的目的?
例如,这是一个Docker文件,以:
FROM debian:jessie
所以这是在基于Debian的容器中安装Docker镜像。
例如,我也看到很多其他人使用Ubuntu。
是否可以绕过此步骤并直接在容器中安装软件使用安装容器的下划线Linux dist?
因为,就像物理机或虚拟机一样,设置用户环境将是一种痛苦而没有分发。
这就是IMO,Docker的强大优势之一:为特定应用选择最合适的发行版。
容器化应用程序可能具有依赖性。要安装这些依赖项,拥有一个包管理器会有很大帮助。默认情况下,许多发行版中也包含一些依赖项,这使得容器创建者(应用程序)选择自己的发行版是个好主意。
此外,请记住,打包整个发行版并不一定会浪费大量资源:
debian:jessie
的两个图像可以为基线重用相同的数据。如果你真的想创建一个最小的图像,试试busybox
。但是,对于任何真实世界的容器图像,您经常会发现自己的速度超过了它。