我试图了解Docker的概念,但有一点我无法理解:
据我所知,图像(因此 - 容器)可以从不同的Linux发行版中实例化,例如Ubuntu,CentOS等.
让我们说在主机上我运行标准的Ubuntu 14.04,
额外问题:如果开发人员未在Docker集线器描述中指定它,我如何知道用于图像的基本图像?
先感谢您!
码头工人也不能使用LXC(不是因为码头工人0.9),但libcontainer(现在的runc),它操作的命名空间,对照组,功能,AppArmor配置文件,网络接口和防火墙规则内置的执行驱动器-都在一个一致的和可预测的方式,和不依赖于LXC或任何其他用户包.
docker镜像表示winch将在访问主机内核时作为自己的内存和磁盘和用户空间中的容器运行的一组文件.
这与VM不同,VM不访问主机内核,但通过其虚拟机管理程序包含自己的硬件/软件堆栈.
容器只需在主机中设置限制(磁盘,内存,CPU).实际的VM必须构建一个全新的主机.
该docker镜像(文件组)可以是任何东西,只要:
这意味着图像可以是任何东西:另一个Linux发行版,甚至是一个可执行文件.例如,go(https://golang.org/)中的任何可执行编译都可以打包在自己的docker镜像中,而不需要任何Linux发行版:
FROM scratch
COPY my_go_exe /
ENTRYPOINT /my_go_exe
Run Code Online (Sandbox Code Playgroud)
scratch 是一个"空"图像,一个go可执行文件是静态链接的,因此它是自包含的,只依赖于对内核的系统调用.
主机操作系统和docker容器之间共享的主要内容是内核.从不同的发行版/版本运行docker容器的主要风险是它们可能依赖于主机系统上不存在的内核功能,例如,如果容器需要比主机安装的内核更新的内核.
理论上,Linux内核是向后兼容的.只要主机内核比容器内核更新,它就应该工作.
从操作角度来看,每次开始依赖于不同的基本映像,这是您需要监视更新和安全问题的另一个依赖项.在发现下一个大漏洞时,对一个分发进行标准化可以减少运营团队的工作量.
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |