在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传统链接:
- 在nginx文件夹
docker build -t docker-nginx .
- 在节点文件夹
docker build -t docker-node .
-
docker run -d --name app docker-node
-
docker run -d --name nginx --link app:app docker-nginx
然后你在nginxconfiguration文件中指向应用程序 。 像app:3000
你也可以使用docker-compose来简化图像的build立和容器的运行。 结帐文件 。