dockerize mysql Web应用程序

时间:2018-11-27 10:04:45

标签: mysql node.js docker docker-compose

我正在尝试对连接到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个单独的容器,还是可以在同一个容器中?

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联系。