用`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 up
和supervisord
(请参阅下面的supervisord.conf
相关部分),问题是容器现在被命名为myapp_app_1
, myapp_data_1
和myapp_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中做,所以它保存在图像中。