我在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
现在我正在尝试使用supervisord运行docker-compose(参见下面的supervisord.conf的相关部分),问题是容器现在被命名为myapp_app_1,myapp_data_1和myapp_db_1,即它们是从头开始创建的并且所有自定义以前的容器丢失了.
我尝试重命名容器,但它给出了一个错误,说已经有一个具有该名称的容器.
问:有没有办法强制docker-compose重用现有容器而不是根据各自的图像创建新容器?
supervisord.conf
06001
最佳答案 撰写
will always reuse containers as long as their config hasn’t changed.
如果容器中有任何状态,则需要将该状态放入卷中.容器应该是短暂的,你应该能够销毁它们并在任何时候重新创建它们而不会丢失任何东西.
如果你需要初始化一些东西,我会在Dockerfile中做,所以它保存在图像中.