通过docker-compose重新使用容器

发布于 2021-02-01 12:54:04

我有一个在定义的多个Docker容器上运行的应用程序docker-compose。我的用户一切正常,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_1并且myapp_db_1,这是他们创造了从无到有,并在原容器的所有自定义都将丢失。

我尝试重命名容器,但是它给出一个错误消息,指出已经有一个使用该名称的容器。

问: 是否有某种方法可以强制docker-compose重用现有容器,而不是根据各自的映像创建新容器?

主管

...
[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
关注者
0
被浏览
160
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    只要容器的配置没有改变, Compose 就会一直重用容器

    如果容器中有任何状态,则需要将该状态放入卷中。容器应该是临时的,您应该能够销毁它们并在任何时间重新创建它们而不会丢失任何东西。

    如果您需要初始化某些东西,我会在Dockerfile中完成它,以便将其保留在映像中。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看