docker - 如何在同一个容器上启动 redis-server 和 node.js 应用程序?

标签 docker dockerfile

如标题所示,我尝试了如下的 Dockerfile。

# install redis-server and start it
RUN yum install -y redis
RUN service redis start

# run node app when container starts
CMD ["node", "app.js"]

在app.js中,我使用localhost连接到redis

但是当我尝试运行容器时,发现 redis-server 没有在本地主机上运行,​​并且 app.js 无法启动。

我知道通常人们会在不同的容器中启动 redis 和 node.js 应用程序,但为什么我不能这样做?

请给我一些意见。

最佳答案

在一个容器中,您通常只启动一个软件。你可以启动多个,但是你需要一些工具,比如supervisor https://docs.docker.com/articles/using_supervisord/ runit、s6、daemontools,请参阅常见问题解答 https://docs.docker.com/faq/

关于docker - 如何在同一个容器上启动 redis-server 和 node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524228/

相关文章:

docker - 为什么 Docker 在使用 -P 时没有正确公开我的端口,但使用 -p 80 :80?

docker - 尝试在尽可能小的容器中运行二进制文件

docker - 如何为在 docker 容器中运行的 .NET Core Web API 服务提供应用程序配置?

docker - 部署注册表时如何在 docker swarm 中解决此问题 "no suitable node (scheduling constraints not satisfied on 1 node)"?

node.js - ECS Fargate 上的 EFS 挂载 - 拒绝非 root 用户的读/写权限

docker - 有没有办法在 Dockerfile 中指定建议的标签名称?

docker - 删除 Docker 镜像再次出现在新的构建命令中

java - 无法加载 Logmanager "org.jboss.logmanager.LogManager"java.lang.ClassNotFoundException : org. jboss.logmanager.LogManager

docker - 如何使用同一Dockerfile处理应用程序的多种变体?

java - Docker 容器 - JVM 内存峰值 - Arena block 内存空间