我正在学习docker。有人告诉我为节点服务创建docker镜像的最佳做法是什么。我应该为整个项目创建单个docker镜像,还是为每个api实现一个docker镜像。应该是最好的方法和原因,请给出解释。
答案 0 :(得分:1)
为我的节点项目的每个服务创建docker文件是否可行?
是的!如果您认为可以定义项目的不同组件,请将它们分开并使用不同的“精简”容器。我建议你看一下JérômePetazzoni的演讲:Implementing Separation of Concerns with Docker and Containers
幻灯片32-34中的:
<强>原理强>
答案 1 :(得分:0)
为不同的API创建一个单独的图像不是一个好习惯。为什么?因为每个API都有它自己的需求,它有自己的环境变量,可能是不同的URL来访问不同的数据库等等......即使dockerfile对于几乎所有的API容器都是相同的,你也可能有不同的需求。 docker的用处是它可以在构建图像时保存图层,这些图层是共享和缓存的,因此它们可以由基于相同图层的不同服务重用。
我的建议如下:
•如果您正在为每个API设置一个具有独特角色的微服务架构,请为每项服务创建单独的图片
•如果您不在乎并且遇到整体架构,请使用一个单个图像