我创建了一个包含预安装包的docker镜像(apache,mysql,memcached,solr等)。现在我想在一个由这个映像构成的容器中运行一个命令,这个命令依赖于我所有的包。我希望在我开始新容器时启动所有这些容器。
我尝试使用/sbin/init
,但在docker中使用doesn't work。
答案 0 :(得分:1)
一般意见是使用流程管理器来执行此操作。我不会在这里详细介绍,因为我写了一篇博客:http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/
请注意,另一个相当普遍的意见是拆分您的容器。 MySQL通常位于不同的容器中,但您可以尝试稍后使用它:)
答案 1 :(得分:1)
我发现这是一个古老的话题,然而,对于刚刚遇到它的人来说,docker-compose可以用来连接多个容器,因此大多数进程可以分成不同的容器。此外,如前所述,可以使用不同的流程管理器来同时运行流程,我想提到的是Chaperone。我发现它真的很容易使用,并且比主管稍微好一点!
答案 2 :(得分:0)
docker compose和docker sync->应用这个概念你不会出错。
-Glynn