我正在尝试对连接到mysql数据库的node.js Web应用程序进行docker化。刚开始使用docker。似乎无法在线找到有关如何配置此配置的确切答案。我了解我需要使用“ docker-compose.yaml”文件并利用docker-compose。但不确定要在yaml文件中输入什么信息。
node.js应用程序和mysql服务器都位于本地计算机上,同一台计算机运行docker。
数据库名称为“ staff”
这是我遇到的一个例子。但不确定应相对于Web应用程序将其放置在哪个目录中。另外,不确定我是否应该在此处列出数据库名称。
version: '3'
services:
web-app:
build:
context: .
dockerfile: web-app/Dockerfile
ports:
- 8080:8080
links:
- app-db
app-db:
build:
context: .
dockerfile: app-db/Dockerfile
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=Optimize
ports:
- 3306:3306
最后,容器应如何构造? Web应用程序和数据库将是2个单独的容器,还是可以在同一个容器中?
答案 0 :(得分:1)
您根本没有明确的想法:)
让我们从头开始:如何构造容器?
同一网络上绝对有两个单独的容器(链接);您必须了解,每个容器都必须按其职责分开。在这里,我们在一个容器中有业务逻辑,在另一个容器中有数据库。
现在,即使在使用docker-compose之前,您也应该了解docker的工作方式;因此,请按照本教程操作,如果仍有问题,请返回: https://medium.com/@niratattri/building-a-node-js-application-and-deploying-through-docker-meet-docker-aa8ae677ea12
答案 1 :(得分:0)
我绝对同意先前的回答。 Docker是在应用程序级别构建的。因此,每个实体都应在单独的容器中运行。确保您与该技术保持联系,并尝试将所有服务分离在一个单独的容器中。
但是,您还有其他选择,例如设置vm,lxc或jail。实际上,要与容器化保持联系,我建议您首先与lxc联系。