node.js - 如何在 Docker 容器中运行数据库服务?

标签 node.js mongodb docker redis

尝试构建一个 docker 镜像以在镜像中安装 Node 和数据库。 数据库已安装,但在尝试获取容器日志时服务未运行..

FROM ubuntu:lastest
RUN apt-get update && apt-get install -y curl wget gnupg && \
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927 && \
    echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list && \
    curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
    apt-get update && \
    apt-get install -y nodejs mongodb-org redis-server && \
    node -v && \
    npm -v

请就此问题提供帮助,我是 Docker 的新手。

最佳答案

最好单独运行数据库容器,例如一个容器 mongodb和一个 redis .然后将您的应用程序容器连接到这些容器(通过 links (deprecated) 或通过创建和共享网络 as discussed in this question 。您也不必从 ubuntu:latest 开始,但可以从 Node 图像,如 nodejs。一些“编排”,如 docker-compose,可以使将这些服务插入在一起的任务变得更加容易,请参阅 this tutorial(文章中的 postgres 数据库可以很容易地由 mongodb 和 redis 交换)。也可以考虑阅读 best practices 来编写 Dockerfile。

关于node.js - 如何在 Docker 容器中运行数据库服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55570147/

相关文章:

node.js - Angular 2 : NodeJS vs XAMPP

javascript - 高阶函数(如 .map())如何在 JavaScript 内部工作?

node.js - nvm uninstall 实际上并没有卸载 Node 版本

node.js - 如何在nodejs mongodb中使用聚合后更新数据

docker - Windows中将docker的提取图像存储在哪里?

docker - 无法将 docker 镜像推送到 gcloud

node.js - momentJS 获取 UTC 时间戳

mongodb - 在同一文档中按 ID 以原子方式将对象从一个数组移动到另一个数组

java - 有没有办法将 HQL 与 MongoDB 结合使用?

docker - 使用 PHP 的 Elasticsearch 没有相互链接