我正在尝试dockerize一个连接到mysql数据库的node.js web应用程序。刚开始用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条答案
按热度按时间wr98u20j1#
你根本没有明确的想法:)
让我们从头开始:容器应该如何构造?
同一网络上绝对两个独立的容器(链接);你必须明白,每个容器都必须按其责任分开。这里我们将业务逻辑放在一个容器中,数据库放在另一个容器中。
现在,您应该在使用docker compose之前就了解docker的工作原理;因此,如果您仍然有问题,请遵循本教程并返回:https://medium.com/@niratattri/building-a-node-js-application-and-deploying-through-docker-meet-docker-aa8ae677ea12部署
olqngx592#
我完全同意前面的回答。docker是应用程序级的。因此,每个实体都应该在一个单独的容器中运行。确保你接触到这项技术,并尝试将你的所有服务分离在一个单独的容器中。
但是,您还有其他选择,比如设置vm、lxc或jails。实际上,要接触集装箱运输,我建议先和lxc联系。