【问题标题】:how do I start multiple services in a docker container?如何在 docker 容器中启动多个服务?
【发布时间】:2018-05-26 15:26:25
【问题描述】:

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

service httpd start
service postgresql start
service vpms start

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

【问题讨论】:

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

标签: docker docker-compose containers supervisord


【解决方案1】:

具体来说,你可能想看看 docker swarm services:

https://docs.docker.com/engine/swarm/swarm-tutorial/deploy-service/

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

https://github.com/portainer/portainer

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2014-09-02
    • 2017-06-04
    相关资源
    最近更新 更多