在Docker容器中启动多个服务

在我的Dockerfile中,我有以下几点:

# Start app and proxy CMD service nginx start CMD ["nodejs", "/src/index.js"] 

这样做,Node服务器正在运行,但不是nginx。 同样,如果我做的是这样的:

 # Start app and proxy CMD service nginx start && nodejs /src/index.js 

那么nginx正在运行,但不是Node。

我可以忽略明显的东西吗?

我认为你可以用docker-compose来分解你的问题。

你将得到一个容器与你的nginx图像和一个容器app与你的节点应用程序。

然后只需运行一个docker-compose up

您可以使用Docker传统链接:

  1. 在nginx文件夹docker build -t docker-nginx .
  2. 在节点文件夹docker build -t docker-node .
  3. docker run -d --name app docker-node
  4. docker run -d --name nginx --link app:app docker-nginx

然后你在nginxconfiguration文件中指向应用程序 。 像app:3000

你也可以使用docker-compose来简化图像的build立和容器的运行。 结帐文件 。