滥用Docker容器作为VM

时间:2018-11-21 19:31:50

标签: docker containers docker-container

我读到你不应该将ssh放入docker容器中。但为什么?我想使用docker容器替代普通VM。缺点是什么?我知道这会创建很多层。但是我可以将容器定期放平。

我可以将容器用作常规虚拟机吗?发生的“最坏情况”是什么?

2 个答案:

答案 0 :(得分:0)

不,您不能将其用作VM的替代品,因为您在Docker容器上只能有一个入口点。您不能像在常规虚拟机上那样在多个端口上公开多个服务。

答案 1 :(得分:0)

Docker容器针对运行单个进程进行了优化。虚拟机针对运行整个操作系统进行了优化。

在技术层面上,您通常可以 在Docker容器中运行看起来像是完整VM的东西,但这需要大量的手动设置。例如,典型的systemd设置要管理多个主机设备和内核级配置选项,而运行systemd的选择是(a)让它管理主机并可能与主机的systemd冲突,或者(b)手动确定淘汰哪些单位文件无法运行并禁用它们。所有预构建的Docker映像仅运行单个服务(仅MySQL,仅Nginx,仅Python运行时,...),因此您也放弃了这个生态系统。

通过虚拟化硬件设备并运行多个OS内核,VM肯定会在一定程度上降低效率,但是,如果您真的想运行VM,这不会造成很大的性能损失;如果您要使用的模型就是运行VM。