如何在docker容器中启动多个服务?

如何在docker容器中启动多个服务?,docker,docker-compose,containers,supervisord,Docker,Docker Compose,Containers,Supervisord,我有一个正在运行的容器,但我手动启动了一些服务。这些服务包括: service httpd start service postgresql start service vpms start 那么,如何在不手动启动服务的情况下启动容器?到目前为止,我没有任何Dockerfile文件。任何关于如何启动这些服务的示例都肯定会有所帮助具体来说,您可能想看看docker swarm服务: 我喜欢使用portainer来管理swarm服务: 但您也可以使用它来管理其他类型的部署,包括本地部署 如果您

我有一个正在运行的容器,但我手动启动了一些服务。这些服务包括:

service httpd start
service postgresql start
service vpms start

那么,如何在不手动启动服务的情况下启动容器?到目前为止,我没有任何Dockerfile文件。任何关于如何启动这些服务的示例都肯定会有所帮助

具体来说,您可能想看看docker swarm服务:

我喜欢使用portainer来管理swarm服务:

但您也可以使用它来管理其他类型的部署,包括本地部署

如果您只是在本地运行,也许您很乐意单独启动它们:

docker run --name=postgres ... postgres
docker run --link postgres:postgres --name=myapp ... myapp
docker run --link myapp:myapp ... nginx

然后在“myapp”容器中,您可以ping postgres并将其用作DB主机。在nginx容器中,您可以ping myapp并引用它来转发http请求。

所以这是docker的反模式,就像在一般服务中一样,容器应该是一对一的。但是,如果容器的生命周期所连接的进程是启动和监视这些其他服务的shell脚本,那么这是可能的。但是,再次尝试将容器视为服务,而不是虚拟机。