【问题标题】:dockerize mysql web applicationdockerize mysql 网络应用程序
【发布时间】:2019-04-29 01:05:19
【问题描述】:

我正在尝试对连接到 mysql 数据库的 node.js Web 应用程序进行 dockerize。刚开始使用docker。似乎无法在网上找到任何关于如何配置的明确答案。我知道我需要使用“docker-compose.yaml”文件并使用 docker-compose。但不确定需要在 yaml 文件中输入哪些信息。

node.js 应用程序和 mysql 服务器都位于本地机器上,同一台机器运行 docker。

数据库名称是“员工”

这是我遇到的一个例子。但不确定它应该相对于 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 个单独的容器,还是可以在同一个容器中?

【问题讨论】:

标签: mysql node.js docker docker-compose


【解决方案1】:

你根本没有清晰的想法:)

让我们从头开始:容器应该如何构建?

同一个网络上绝对有两个独立的容器(链接);您必须了解每个容器都必须按其职责分开。在这里,我们将业务逻辑放在一个容器中,将数据库放在另一个容器中。

现在,您应该在使用 docker-compose 之前了解 docker 的工作原理;因此,请按照本教程进行操作,如果仍有问题,请返回: https://medium.com/@niratattri/building-a-node-js-application-and-deploying-through-docker-meet-docker-aa8ae677ea12

【讨论】:

    【解决方案2】:

    我完全同意前面的回答。 Docker 是在应用程序级别上制作的。因此,每个实体都应该在单独的容器中运行。确保您接触到这项技术并尝试将所有服务分离在一个单独的容器中。

    但是,您还有其他选择,例如设置 vm、lxc 或 jails。实际上,要接触容器化,我想建议先接触lxc。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 2018-01-10
      • 2019-06-17
      • 2020-05-23
      • 2016-07-10
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多