Docker,我有一个包含应用程序服务器的文件夹.什么可以用作容器



我想问,如果我有一个文件夹包含应用程序服务器(Axis2、Tomcat、WSO2、mongodb和jms使用者),什么可以用作容器?

Docker是应用程序安装程序吗?它对整个应用程序进行分类,因此1被用作安装程序文件,例如:server.exe用于windows,server.deb用于ubuntu

能帮我解释一下吗?

Docker作为应用程序安装程序?

不,docker是一个管理容器(与主机内核一起运行的独立用户/进程/磁盘机器)、构建、运输和运行(容器即服务)的平台。

最佳做法是将全局服务的每个部分隔离在自己的容器中,这既是因为PID1僵尸收割问题(在"docker中使用Supervisor"中有详细说明),也是为了便于管理和更新
如果每个组件只代表Tomcat、MongoDB等,那么每个组件都更容易管理/调试,而不是拥有一个巨大的容器
此外,您也可以停止/更新其中一个,而不必执行所有其他操作。

类似安装的部分是对您的环境的描述(包括操作系统和您想添加到容器中的应用程序),使用Dockerfile:描述您的环境需要运行什么
这有助于构建一个映像(您需要的所有文件的归档),从中docker run是一个容器。

现在,这些容器只作为Linux机器在Linux内核主机上运行(或者在Windows上,通过Linux虚拟机)
您还没有在Windows上运行的纯Windows映像/容器(正在使用Windows Server 2016)。


那么,你能把你在一个巨大的文件夹里的东西放在一个码头集装箱里吗?

不直接。Dockerfile的目标是描述如何安装您需要的东西
然后是docker build,从你得到的图像来看,就是docker run

但是,为了让docker正确地管理容器的生命周期,最好将容器限制在一个进程内(而不是尝试在同一容器空间中运行webapp服务器、mongodb等)

这意味着:

  • 在单独的Dockerfile中为系统的每个组件进行描述(构建单独的映像)
  • 以一种他们看到彼此并相互交流的方式运行这些容器

在我的项目中,您有一个复杂的多组件系统的示例:b2d

相关内容

最新更新