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

时间:2015-11-24 07:09:19

标签: docker containers

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

Docker是否为应用程序安装程序?其中对整个应用程序进行了分类,因此1用作安装程序文件,例如:server.exe用于Windows,server.deb用于ubuntu

可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:2)

  

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

不,docker是一个管理容器的平台(与主机内核一起运行的独立用户/进程/磁盘机),围绕构建,发布和运行(Containers as a Service)。

最佳做法是将全局服务的每个部分都放在自己的容器中,因为PID1 zombie reaping issue(详见" Use of Supervisor in docker"),但也是易于管理和更新的术语 如果每个组件只代表一个Tomcat,一个MongoDB,一个......,每个组件都更容易管理/调试,而不是拥有一个巨型容器。
你也可以停止/更新一个所有其他。

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

目前,这些容器只能在Linux内核主机上运行Linux机器(或在Windows上通过Linux VM运行) 您还没有在Windows上运行的纯Windows映像/容器(Windows Server 2016正在进行中)。

那么你可以把你拥有的东西放在一个巨大的文件夹中并把它放在一个docker容器中吗?

不直接。 Dockerfile的目标是描述如何安装所需的东西 然后是docker build,并从您获得的图片中docker run

但是为了让docker正确管理该容器的生命周期,最好将容器限制为一个进程(而不是trynig在同一个容器中运行所有类似webapp服务器,mongodb等的东西)空间)

这意味着:

  • 在系统的每个组件的单独Dockerfile(构建单独的映像)中进行描述
  • 以他们看到对方并彼此沟通的方式运行这些容器。

您有一个complex multi-component system in my project: b2d的例子。