我是这个容器化的新手,我想知道Docker如何取代虚拟机?
我给出了一个案例研究,其中有2个虚拟机,每个虚拟机充当虚拟服务器,一个是开发服务器,另一个是测试服务器,我被要求研究Docker如何有效地帮助管理工作流程
在这种情况下,2台虚拟机是服务器,而Docker取代虚拟机的想法令我感到困惑。
任何人都可以帮助我理解这个概念。
先谢谢!!
答案 0 :(得分:1)
我不确定如何将服务器完全替换为docker容器,因此我假设您要将在2台服务器上运行的2个应用程序替换为运行2个容器的每个测试和开发应用程序的1个服务器。
在我回答之前,我会做一些假设。
Docker Basics
Docker Registry - 您可以从中下载基本映像的位置 所以在这里,
在unix服务器上设置docker。
示例dockerfile看起来像
FROM webspher-liberty17:webProfile7
ENV SERVER_NAME=myapptestserver
RUN ["/bin/bash", "-c", "/opt/ibm/wlp/bin/server create $SERVER_NAME"]
EXPOSE 9080 9443
COPY server.xml jvm.options /opt/ibm/wlp/usr/servers/$SERVER_NAME/
COPY *.war /opt/ibm/wlp/usr/servers/$SERVER_NAME/dropins/
CMD ["/opt/ibm/docker/docker-server", "run", "myapptestserver"]
现在,当您执行此docker文件的docker构建时,它将创建一个基本层为ibm liberty的图像。 FROM之后的每个命令都允许您添加其他图层,以便您可以根据自己的具体情况进行自定义。
对两个应用完成上述操作后,您的应用实际上有两种版本在同一台服务器上运行,但服务于两种不同的环境。
最重要的是,将它添加到Bamboo / jenkins的CI / CD管道中,您可以快速启动和调低环境。
答案 1 :(得分:0)
每个docker容器本身都充当虚拟机,意味着每个容器 具有自己的操作系统的容器将进程与主机隔离开来。
因此,如果您启动2个容器意味着您将运行2个ubuntu(for ex)服务器。在每个容器中,您可以运行您的软件并公开 对外界的服务。
如果最终docker死了,你可以从图像重新启动 安装操作系统,应用程序与虚拟机不同。
您可以将docker镜像传输到其他服务器 导入/导出您的应用程序,只需要其他 服务器已运行docker服务。
如果有2个依赖服务作为容器运行我们可以 链接那些容器进行内部通信。就像wordpress一样 容器和mysql作为其他两者都应该有联系的,它 那个案例的docker链接将有助于互连。
你可以管理docker容器的cpu,内存,磁盘 任何虚拟机管理程序中的虚拟机。
详细信息: https://docs.docker.com/engine/docker-overview/#docker-engine