用`docker-compose`重复使用容器

我有一个应用程序在docker docker-compose定义的多个Docker容器上运行。 一切工作正常,从我的用户和docker-compose ps输出如下所示:

  Name Command State Ports ------------------------------------------------------------ myuser_app_1 /config/bootstrap.sh Exit 137 myuser_data_1 sh Exit 0 myuser_db_1 /run.sh Exit 143 

现在我正在尝试运行docker-compose upsupervisord (请参阅下面的supervisord.conf相关部分),问题是容器现在被命名为myapp_app_1myapp_data_1myapp_db_1 ,也就是说,它们是从头开始创build的,所有自定义前者的容器丢失了。

我尝试重命名容器,但它给出了一个错误,说已经有一个名称的容器。

问:是否有一些方法可以强制docker-compose重用现有的容器,而不是根据各自的图像创build新的容器?

supervisord.conf

 ... [program:myapp] command=/usr/local/bin/docker-compose -f /usr/local/app/docker-compose.yml up redirect_stderr=true stdout_logfile=/var/log/myapp_container.log stopasgroup=true user=myuser 

只要configuration没有改变,撰写将总是重复使用容器 。

如果在容器中有任何状态,则需要将该状态放入一个卷中。 容器应该是短暂的,你应该能够随时销毁它们,并且不会丢失任何东西。

如果你需要初始化一些东西,我会在Dockerfile中做,所以它保存在图像中。