你如何使用容器的概念(Docker容器)来提供你的应用程序?

这是一个关于使用容器来交付和开发微服务的问题。

你如何使用容器的概念提供你的应用程序? 我真的需要在每个构build中使用我的应用程序生成一个Docker容器吗? 即使是本地构build?

我是否需要将我的Spring Boot应用程序,Node.js应用程序或其他types的应用程序复制到我的Docker容器? 或者用我的应用程序安装一个卷是最好的方法?

我是否也需要使用容器在本地环境中进行开发? 例如,在Spring Boot中,最好的方法是在Eclipse或IDE等IDE中运行Application.class以在本地环境中testing我的代码。

首先,如果你想使用Docker容器进行部署 ,你的构build系统应该生成docker镜像,而你的临时环境应该运行这些镜像。

本地发展是一个不同的故事。 有几种方法,每个都有自己的优点/缺点:

  1. 总是build立一个docker图像,即使是本地构build。 好处是您的本地testing是“真实”的,因为您正在对最终在生产中部署的同一个容器进行testing。 Docker构build的明显缺点是可能很慢(即使是caching)。

  2. 使用与生产映像相同的运行时环境构buildDocker镜像,但将实时代码安装到其中。 有些人喜欢这种方法,因为它在花费大量时间构build映像与具有真实运行时环境之间实现了更好的折衷。 它还具有与同事共享您的环境的好处,所以每个人都使用相同的运行时环境进行testing。

  3. 使用您当前的本地环境,忘记在本地开发中的docker工人。 这是最简单的方法,如果您不需要在本地运行大量的端到端testing,那么我认为这也是一个很好的方法。 如果您只需要在本地执行代码并运行一堆unit testing,并且您已经有一个单独的临时环境来运行真实容器的端到端testing,则在本地使用docker不会增加更多的值。

简而言之,在本地运行docker是一种廉价的方式来进行“真正的”端到端testing,但是它增加了复杂性,坦率地说不能(也不应该)取代一个好的分段设置。