Docker 如何在同一容器上启动redis server和node.js应用程序?
作为标题,我尝试了Dockerfile,如下所示Docker 如何在同一容器上启动redis server和node.js应用程序?,docker,dockerfile,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服务器没有在localhost上运行,app.js无法启
# 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服务器没有在localhost上运行,app.js无法启动
我知道人们通常在单独的容器中启动redis和node.js应用程序,但为什么我不能这样做呢
请给我一些意见。你需要一些类似主管的东西,为什么不使用两个容器和docker compose
建议您的方法使用基本图像:您需要类似于主管的东西,为什么不使用两个容器并使用docker compose
推荐的基本映像:在容器中,通常只启动一个软件。您可以启动多个,但需要一些工具,如supervisor runit、s6、daemontools,请参阅常见问题解答。在容器中,您通常只启动一个软件。您可以启动多个进程,但您需要一些工具,如supervisor runit、s6、daemontools,请参阅常见问题解答我只是想知道为什么我不能在一个容器中运行两个进程。正如我所说,可以使用supervisor—但请记住docker不是VM。查找phusion passenger以获得适当的init和supervisor容器(尽管我根本不支持这种方法)。现在,您的容器负责确保服务运行,而您的编排工具则无法运行。每个容器有一个服务可以完全分离容器之间的关注点,并为您的编排工具提供容器级别的管理。我只是想知道为什么我不能在一个容器中运行两个进程。正如我所说,可以与主管一起运行-但请记住docker不是VM。查找phusion passenger以获得适当的init和supervisor容器(尽管我根本不支持这种方法)。现在,您的容器负责确保服务运行,而您的编排工具则无法运行。每个容器有一个服务允许在容器之间完全分离关注点,并为您的编排工具提供容器级管理。