我将在Linux上使用Node.js和PostgreSQL。我读了好几个小时关于docker的实际工作原理。我仍然不确定在开始我的项目之前是否需要docker环境,或者我可以在项目完成后使用docker?
发布于 2016-09-02 02:05:34
首先让我们了解一下docker是什么,以及如何在项目中使用它。
Docker有三个核心概念:
1) Docker engine :轻量级的运行时和健壮的工具,用于构建和运行Docker容器。
2) Docker镜像:项目环境的副本,包括基础操作系统、主机条目、环境变量、数据库、web/应用服务器等所有环境依赖项。在您的例子中,包括您选择的Linux发行版、node.js和必需的模块、PostreSQL及其配置。
3) docker容器:可以可视化为运行项目的虚拟Linux服务器。每次使用docker run时,都会从docker镜像启动一个新的容器。
您可以将docker环境可视化为一个轻量级虚拟机,您可以在其中运行项目,而不会受到其他项目的任何外部干扰(主机条目/环境变量/ RAM/ CPU)。
因此,作为一个开发人员,你可以在你的开发机器上开发你的项目,一旦它准备好被推到QA/Staging,你就可以构建一个项目的docker镜像,然后可以在任何环境(QA/Staging/Production)上部署。
您可以在单台或多台物理服务器上通过镜像启动多个容器。
发布于 2016-09-02 00:44:12
您可以随时引入Docker。如果使用多个服务器,那么您可以创建一个Docker容器,其中包含一个服务器,而另一个(非Docker化解决方案)向其发出请求。
或者你可以把它们都用Docker化。
基本上,在你觉得合适的时候引入Docker。
我喜欢将一个大型项目划分为多个部分-例如前端web服务器、后端身份验证服务器、后端API服务器1、后端API服务器2等。
当项目的每一部分完成时,我都会对其进行Docker化。然后其他部分使用Dockerised解决方案。
https://stackoverflow.com/questions/39268936
复制相似问题