我有一个应用程序在docker-compose
定义的多个Docker容器上运行。一切都从我的用户正常工作和输出的样子:用`docker-compose`重复使用容器
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
,即它们是从头开始创建的,前一个容器的所有定制都会丢失。
我尝试重命名容器,但它给出了一个错误,说已经有一个名称的容器。
问:有什么方法可以强制docker-compose
重用现有的容器,而不是根据各自的图像创建新的容器吗?
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
如果您只需要每个应用程序一个容器,那么您可以在docker-compose.yml文件中使用'container_name:app' –
'docker-compose'默认使用yml文件的文件夹名称作为项目名称,将该名称添加到所有容器名称。您可以使用'docker-compose -p custom_name'指定项目名称。我不确定这是否会强制重用现有的具有相同名称的容器。如果您有不想覆盖的重要数据,请首先在不重要的容器上首先进行测试。 –