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

作为标题,我尝试了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服务器没有运行在本地主机上,并且app.js无法启动。

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

请给我一些关于这个的意见。

在容器中,通常只启动一个软件。 你可以启动不止一个,但你需要一些工具,如监督https://docs.docker.com/articles/using_supervisord/ runit,s6,daemontools,请参阅常见问题https://docs.docker.com/faq/

你会需要像监督员,为什么不有2个容器,并使用docker撰写?

推荐的基础图像为您的方法: https : //github.com/phusion/baseimage-docker